【题述】
Description
给定正整数n,有多少个小于等于n的正整数与n互质,两个数互质的条件为两个数只有1这个共同的因子.
Input
多组测试数据,每组仅一行,为正整数n.(n<=100000)
Output
对于每组数据输出有多少个与n互质的数
Sample Input
9
Sample Output
6
分析:
就是求两个数的最大公约数==1的数字有几个
难点:
循环的时候一定要注意<=n!!
#include <stdio.h>
int gcd(int a,int b){
if(a<b)
return gcd(b,a);
else if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int main(){
int n,i,count;
while(scanf("%d",&n)!=EOF){
count=0;
for(i=1;i<=n;i++){//注意!!不然没=的话,n=1 输出就是0,就wa了
if(gcd(n,i)==1)
count++;
}
printf("%d\n",count);
}
return 0;
}