++数论
小9
优秀是一种习惯
展开
-
扩展欧几里得算法及其编程应用
扩展欧几里得gcd(a,b) return b==0?a:gcd(b,a%b)我们观察到:欧几里德算法停止递归时: a'= gcd , b' = 0 ,(a',b'是递归最后一层时的值)那么,这是否能给我们求解 x y 提供一种思路呢?方程a'x' + b'y' = gcd 的解为:x'=1,y'为任意数记住这是退出递归时,各个变量的值。当然这是最终状态,但我们是否可以从最终状态反推到最初的状态呢?即ax + by = gcd初始状态时,我们要处理的是求出 a 和 b的最大公约数,并原创 2021-05-12 09:35:20 · 1065 阅读 · 2 评论 -
质数筛法C++
直接上代码:#include <iostream>#include <vector>using namespace std;const int n=...; // 范围vector<bool> vis(n+1, true);//vis用来标记质数,用bool可以节约空间int prim[n];//prim存当前找到的质数int cnt = 0;//cnt记录当前为止找到的质数的个数void init() {//筛法,筛出质数存到prim数组中 f原创 2021-05-22 17:59:26 · 633 阅读 · 2 评论