欧拉函数
递推法虽然目前看不大懂,但是跟素数筛法差不多能记住。
代码
#include <bits/stdc++.h>
using namespace std;
int phi[10000005];
void db()
{
memset(phi,0,sizeof(phi));
phi[1]=1;
for(int i=2;i<10000005;i++)
{
if(!phi[i])
{
for(int j=i;j<10000005;j+=i)
{
if(!phi[j]) phi[j]=j;
phi[j]=phi[j]/i*(i-1);
}
}
}
}
main()
{
db();
int a;
while(cin>>a)
cout<<phi[a]<<endl;
}