[POJ2407]Relatives

来源:互联网 发布:新兴网络信息技术 编辑:程序博客网 时间:2024/04/25 16:20

Time Limit: 1000MS
Memory Limit: 65536K

Description

Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that a = xy and b = xz.

Input

There are several test cases. For each test case, standard input contains a line with n <= 1,000,000,000. A line containing 0 follows the last case.

Output

For each test case there should be single line of output answering the question posed above.

Sample Input

7120

Sample Output

64

题意:求小于n的正整数中,与n互质的数的个数。

题解:
我…dxy….数学学渣。
求phi(n)。phi(n)为欧拉函数。
phi(n)=n(11/p1)(11/p2)...(11/px)
p1,p2,p3…px为n的所有质因数。

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>#include<cmath>#define LiangJiaJun main#define ll long longusing namespace std;ll n;ll phi(ll x){   ll ans=x,now=x,lim=sqrt(x);   for(int i=2;i<=lim;i++){       if(now % i == 0){          ans=ans*(i-1)/i;          while(now % i==0)now /= i;       }   }   if(now > 1)ans = ans*(now-1)/now;   return ans;}int LiangJiaJun (){    while(scanf("%lld",&n)){        if(n == 0)break;        printf("%lld\n",phi(n));    }    return 0;}
原创粉丝点击