poj2478求(2~n)之间的欧拉函数之和
来源:互联网 发布:华为手机游戏数据 编辑:程序博客网 时间:2024/05/17 03:17
/*求Fi集合中元素的个数,其中Fi集合的元素满足下列条件形如a/b,且0<a<b<=i, gcd(a,b)=1欧拉函数表示{0……n}中与n互质的整数的个数,1,2的欧拉函数是1;当n为素数是欧拉函数是n-1;当n是合数是欧拉函数是<n-1;若m,n互质时则,m*n的欧拉函数的值是m的欧拉函数值乘以n的欧拉函数值;质数p的正整数k次幂的欧拉函数是P^k-P^(k-1);=(p-1)*p^(k-1);*/#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int phi[1000005];int main(){ int i , j ; memset ( phi , 0 ,sizeof ( phi ) ) ; phi[1]=1; for ( i = 2 ; i <= 1000000 ; i ++ ) {//筛选求phi if ( ! phi [i] ) { for ( j = i ; j <= 1000000 ; j += i ) { if ( ! phi [j] ) phi [j ] = j ; phi [j] = phi [j] / i * ( i - 1 ) ; } } } int n ; while ( cin >> n , n ) { __int64 sum = 0 ; for ( i = 2 ; i <= n ; i ++ ) sum += phi [i] ; cout<<sum<<endl; } return 0;}/*/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-07-17 18:57 # Filename: POJ2478 Farey Sequence.cpp # Description : ******************************************************************************/#ifdef _MSC_VER#define DEBUG#define _CRT_SECURE_NO_DEPRECATE#endif#include <fstream>#include <stdio.h>#include <iostream>#include <string.h>#include <string>#include <limits.h>#include <algorithm>#include <math.h>#include <numeric>#include <functional>#include <ctype.h>using namespace std;const int kMAX=1000010;const double kEPS=10E-6;int prime[kMAX]={0},num_prime=0;//num_pirme记录素数个数bool is_prime[kMAX];void GetPrime(const int m){ memset(is_prime,true,sizeof(is_prime)); for(int i=2;i<m;i++) { if(is_prime[i]) prime[num_prime++]=i; for(int j=0;j<num_prime && i*prime[j]<m;j++) { is_prime[i*prime[j]]=false;//合数标为1,同时,prime[j]是合数i*prime[j]的最小素因子 if(!(i%prime[j]))//即比一个合数大的质数和该合数的乘积可用一个更大的合数和比其小的质数相乘得到 break; } }}long long dp[kMAX]={0ll};void Solve(void){GetPrime(kMAX);for(int i=2;i<kMAX;++i){if(is_prime[i])dp[i]=i-1;else{for(int j=0;j<num_prime;++j)if(i%prime[j]==0){if((i/prime[j])%prime[j]==0)dp[i]=dp[i/prime[j]]*prime[j];elsedp[i]=dp[i/prime[j]]*(prime[j]-1);break;}}}for(int i=3;i<kMAX;++i)dp[i]+=dp[i-1];}int main(void){#ifdef DEBUG freopen("../stdin.txt","r",stdin); freopen("../stdout.txt","w",stdout); #endif int n,ncase=1; Solve(); while(~scanf("%d",&n) && n) {printf("%lld\n",dp[n]); } return 0;}*/
0 0
- poj2478求(2~n)之间的欧拉函数之和
- poj2478 (欧拉函数)
- poj2478(欧拉函数)
- poj2478 欧拉函数
- poj2478【欧拉函数】
- hdu 3501 欧拉函数(求小于n与n不互质的数之和)
- POJ2478(典型的欧拉函数)
- POJ2478 && Sicily1089(欧拉函数)
- poj2478 Farey Sequence 欧拉函数的应用
- poj2478 Farey Sequence 欧拉函数性质的简单应用
- 求1~n的欧拉函数
- 20160321 POJ2478 Farey Sequence(欧拉函数)
- POJ2480(欧拉函数求最大公约数之和)
- POJ2478 Farey Sequence,欧拉函数
- poj2478 Farey Sequence (欧拉函数)
- POJ2478 Farey Sequence(欧拉函数)
- POJ2478 Farey Sequence 数论,欧拉函数
- poj2478 Farey Sequence (欧拉函数)
- tomcat post,get 编码设置
- AngularJS中的控制器
- windows程序设计 创建窗口
- 关于http post json数据的写法
- windows程序设计 显示窗口
- poj2478求(2~n)之间的欧拉函数之和
- 最少步数(广搜)
- windows程序设计 消息循环
- unity3D C#简单代理使用了解
- django操作数据库问题总结
- poj3910欧拉函数的矩阵应用
- windows程序设计 窗口过程函数
- poj 3253 fence repair
- C标准库:以串为单位的IO函数