hdu 1787

#include<stdio.h>
#include<math.h>
int huzhi(int n) {//欧拉函数公式
int i,j=n;
for(i=2;i<(int)sqrt(1.0*n)+1;i++)
if(n%i==0) {
j=j/i*(i-1);
while(n%i==0)//保证i都是素数
n/=i;
}
if(n>1)//当n为2时用到此步
j=j/n*(n-1);
return j;
}
int main() {
int n;
while(scanf("%d",&n),n) {
printf("%d\n",n-huzhi(n)-1);//减除1和互质的
}
return 0;
}
posted @ 2013-11-20 15:31  HYDhyd  阅读(100)  评论(0编辑  收藏  举报