南阳 686 An Interesting Sequence

欧拉函数:

Phi(n)=n(1-1/p1) (1-1/p2)….. (1-1/pk) 
其中p1, p2 ,pk是n的所有素数因子 
Phi(n):所有小于等于n的且与n互素的数的个数

#include<stdio.h>
long long eular(long long n){
   long long t=n,i;
    for(i=2;i*i<=n;i++){
        if(n%i==0){
            while(n%i==0){
                n/=i;
            }
            t=t/i*(i-1);
        }
    }
    if(n>1) t=t/n*(n-1); 
    return t;
   
}
int main(){
    long long n;//不能用int型,否则会TLE,不知为何
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%lld",&n);
       printf("%lld\n",eular(n));
    }
    return 0;
} 



 

你可能感兴趣的:(欧拉函数)