水题,不解释。。。题目:
Coprimes
时间限制:
500 ms | 内存限制:
4096 KB
难度:
1
-
描述
-
For given integer N (1
<=N
<=10
4) find amount of positive numbers not greater than N that coprime with N. Let us call two positive integers (say, A and B, for example) coprime if (and only if) their greatest common divisor is 1. (i.e. A and B are coprime iff gcd(A,B) = 1).
-
输入
- Input file contains integer N.( 注意:程序以文件结束符“EOF”结束输入。) 输出
- Write answer in output file. 每个数字占一行。 样例输入
-
9
样例输出
-
6
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int n;
while(~scanf("%d",&n)){
int ans=n;
int m=sqrt(n+0.5);
for(int i=2;i<=m;++i){
if(n%i==0)
ans=ans-ans/i;
while(n%i==0)
n/=i;
}
if(n>1)ans=ans-ans/n;
printf("%d\n",ans);
}
return 0;
}