C 显示给定整数的因子?
我正在使用代码:C 显示给定整数的因子?,c,C,我正在使用代码: #include<stdio.h> int main() { int n,i; printf("enter an integer value:"); scanf("%d",&n); if(n!=0) { for(i=1;i<=n;i++) { if(n%i==0) { printf("%d "
#include<stdio.h>
int main()
{
int n,i;
printf("enter an integer value:");
scanf("%d",&n);
if(n!=0)
{
for(i=1;i<=n;i++)
{
if(n%i==0)
{
printf("%d ",i);
}
}
}
}
#包括
int main()
{
int n,i;
printf(“输入整数值:”);
scanf(“%d”和“&n”);
如果(n!=0)
{
对于(i=1;i你的代码是完美的,因为我认为你错过了一些东西
#include <stdio.h>
int main()
{
int n,i;
printf("enter an integer value:");
scanf("%d",&n);
if(n!=0)
{
for(i=1;i<=n;i++)
{
if(n%i==0)
{
printf("%d ",i);
}
}
}
return 0;
}
#包括
int main()
{
int n,i;
printf(“输入整数值:”);
scanf(“%d”和“&n”);
如果(n!=0)
{
对于(i=1;i我认为您的错误与代码无关
我运行了代码,没有收到任何错误:
输入
输出
该代码运行良好,我建议您使用
for(i=1;i*i<n;i++)
for(i=1;i*i你能给我们看一下确切的错误消息吗?@Beta啊,是的,我试图编辑它,但另一次编辑正在等待。请提供错误消息(或屏幕截图)。我们无法重现错误。如果您使用硬编码值而不是扫描标准输入,该怎么办?如果您省略printf
语句该怎么办?如果给定输入:6,则显示为1 2 3 6。但实际输出为1 2 3 6。他实际上应该将其更改为i*i
,这将导致O(logn)复杂度,而不是O(n)@Marian我不认为该条件会导致所有因素。例如,对于testcase 50,您的条件将导致1 2和5,而所需的输出为1 2 5 10 25您每次迭代得到两个因素,例如2和25、5和10等。您是对的,正在考虑它,将编辑答案。谢谢:)
enter an integer value:1 2 3 4 6 9 12 18 36
for(i=1;i*i<n;i++)
for(i=1;i<=n;i++)