敬请高手精简程序
输入几个数,输出每个数小于它且没公约数的数的个数。(输入个数无限制)下面是小弟写的,但用时太长,望高手能展现你的能力,帮我解难。Thank you!#include <stdio.h>
int flag(int a,int b)
{ int j,n;
while((j=a%b)!=0)
{a=b;
b=j;
n=b;
}
if(n!=1) n=0;
return(n);
}
void main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{j=1;
for(i=1;i<n;i++)
if(flag(n,i)) j++;
printf("%d\n",j);
}
}
[[it] 本帖最后由 xjp814 于 2008-4-24 22:02 编辑 [/it]]