【发布时间】:2020-11-26 10:46:29
【问题描述】:
我正在想办法解决这个问题。用户必须输入一个数字 N,程序必须打印它们和 N 之间 GCD=1 的数字。 如果输入是 5,那么程序应该打印“1 2 3 4”。 对于输入 6,打印应为“1 5”。 然而我的代码没有打印任何东西。谁能帮帮我?
#include <stdio.h>
#include <stdlib.h>
int gcd(int a, int b)
{
if (a==b)
return a;
else
if(a<b)
return gcd(a, b-a);
else
return gcd(a-b, b);
}
int main()
{
int i=0;
long int n;
scanf("%ld", &n);
if (n<1 || n>999999999)
printf("Wrong Input");
else
{
for(i=0; i<=n ; i++)
{
gcd(n, i);
if (gcd(n,i)==1)
printf("%d ", i);
}
}
return 0;
}
【问题讨论】:
-
也许这是一件很挑剔的事情,但是当您要求其他人阅读您的代码时,您至少可以尝试使其尽可能可读。修正格式。
-
for(i=0;应该是for(i=1;。
标签: c