运用素数筛选的思想求欧拉函数。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=40000;
int p[maxn+100];
void init(){
p[1]=1;
for(int i=2;i<=maxn;i++){
if(!p[i]){
for(int j=i;j<=maxn;j+=i){
if(!p[j]) p[j]=j;
p[j]=p[j]/i*(i-1);
}
}
}
}
int main(){
int i,j,k;
init();
for(i=2;i<=40000;i++) p[i]+=p[i-1];
int n;
scanf("%d",&n);
printf("%d\n",p[n-1]*2+1);
return 0;
}
^_^

本文介绍了一种使用素数筛选思想来高效计算欧拉函数的方法,并通过C++代码实现了一个具体的例子。该方法利用了数学原理和编程技巧,能够快速地计算出指定范围内所有整数的欧拉函数值。
450

被折叠的 条评论
为什么被折叠?



