【发布时间】:2016-12-03 20:32:20
【问题描述】:
对于自然数 n,欧拉的总函数定义为集合 {1,...n} 中与 n 互质的自然数的个数。我必须用 C 语言编写一个程序,以便输入 n 的输出是 n 的欧拉函数。
这是我的尝试:
#include<stdio.h>
int main(void) {
int n,k;
scanf("%d", &n);
for (k=1; k<n; k++) {
if(n%k !=0)
printf("%d\n", k);
}
return 0;
}
后来我意识到这也应该给我1作为每个n的输出,所以我想我可以在return 0之前添加这个:
if(k=1) printf("1");
但这似乎不太好......我怎样才能更聪明地编写这个程序?
【问题讨论】:
-
if(k=1)==>if(k==1)。但是你需要一个 GCD 函数please read。 -
if(n%k !=0)这不是检查 k 是否与 n 互质的方法。示例:n=16 和 k = 12。