这个程序的目的是从任何给定的数字中分解出任何素数。
除某些情况外,它工作正常。例如,它不适用于数字 1024。我不明白这是什么问题。非常感谢您的帮助..提前致谢
#include<stdio.h>
int main()
{
int n1,n0,A[100];
char i,j,p=0;
printf("insert number: ");
scanf("%d",&n1);
n0=n1;
for(i=2; i<=n1; i++)
{
while (n0%i==0)
{
n0=n0/i;
A[p]=i;
p++;
}
}
for(j=0; j<p; j++)
{
printf("%d ",A[j]);
}
return 0;
}
最佳答案
代码使用char i
。大多数系统上(有符号)字符的范围是 -128 到 127。
i
如果大于 127,则永远不会达到 n1
。请改用 int
。
关于c - c中素数分解程序的问题。它并不总是有效。它只在某些情况下有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182258/