标签:
/*=======================================================*\| 递推求欧拉函数phi(i)欧拉函数\varphi(n)是小于或等于n的正整数中与n互质的数的数目\*=======================================================*/#define N 3000000__int64 phi[N + 100];void Euler(){int i, j;for(i = 1; i < N; i++)phi[i] = i;for(i = 2; i < N; i++)if(i == phi[i]) //若i为素数 第一次不是for(j = i; j < N; j += i) //让j累加iphi[j] = (phi[j] / i) * (i - 1); //求欧拉函数}/*=========================================================*\筛选法求一个数的最大素因子在素数表中是第几个素数利用筛选法得到素数,每次用一个素数更新它的所有倍数,更新为这个素数的标号,由于大的素数会更新小的素数,所以最后得到的就是最大素因子\*=========================================================*/#include <string>#define maxn 1000000int prime[maxn];void f(){memset(prime, 0, sizeof(prime));for(int i=2, flag=0; i<maxn; i++){if(!prime[i]){flag++;for(int j=i; j<maxn; j+=i)prime[j] = flag;}}}
标签:
原文地址:http://www.cnblogs.com/sober-reflection/p/cac04cd01e2a149341839a52eff990ce.html