sicily 1089 欧拉函数递推
2010-11-17 10:10
363 查看
//f = f[n-1] + fai //欧拉函数 质因子个数/n 包括本身 //fai = n * (1 - 1/a)*.... a为质因子 #include <iostream> #include <cstring> #include <cmath> #define mx 1000010 using namespace std; int prime[mx]; bool isprime[mx]; long long f[1000010]; //long long 贡献一次wa double fai[1000010]; void primeList() { memset( isprime,true,sizeof( isprime ) ); for( int i = 2;i < mx;i++ ) { if( isprime[i] ) prime[++prime[0]] = i; for( int j = 1; j <= prime[0] && i * prime[j] < mx;j++ ) { isprime[i*prime[j]] = false; if( 0 == i % prime[j] ) break; } } } int main() { primeList(); f[2] = 1;f[3] = 3; for( int i = 4;i <= 1000000;i++ ) fai[i] = i; for( int i = 2;i <= 1000000;i++ ) //一开始把 i<sqrt() 当然WA。。 { if( isprime[i] ) { for( int j = i;j <= 1000000;j += i ) // fai = fai * (1-1/a) *(1-1/b)*... a b 为其质因子 { fai[j] = fai[j] / i * ( i - 1 ); } } } for( int i = 4;i <= 1000000;i++ ) { f[i] = f[i-1] + fai[i]; } int n; while( cin>>n && n != 0) cout<<f <<endl; return 0; }
相关文章推荐
- POJ2478 && Sicily1089(欧拉函数)
- poj 2478 Farey Sequence 欧拉函数递推打表
- 【poj2478-Farey Sequence】递推求欧拉函数-欧拉函数的几个性质和推论
- hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
- sicily 1370 How many 0's? 递推 规律
- BZOJ1089(SCOI2003)[严格n元树]--递推+高精度
- POJ 3090 欧拉函数递推
- POJ 3090 ZOJ 2777 UVALive 3571 Visible Lattice Points(用递推比用欧拉函数更好)
- Sicily 1029 Rabbit(高精度运算+公式递推)
- BZOJ 3884(上帝与集合的正确用法-欧拉函数递推找极限)[Template:数论 V2]
- 关于欧拉函数的递推方法的证明
- POJ-2478-Farey Sequence-递推求欧拉函数
- 转自mbxc816 欧拉函数递推
- BZOJ 1089: [SCOI2003]严格n元树 递推 高精度
- 线性筛及线性递推欧拉函数
- BZOJ 1089 严格n元树 (递推+高精度)
- 【BZOJ1089】[SCOI2003]严格n元树【递推】【高精度】
- 欧拉函数的递推形式
- POJ 2478 线性递推欧拉函数
- BZOJ 1089: [SCOI2003]严格n元树 递推,高精度