我想将一个数字的所有因素列出到一个数组中。所以,这是我的尝试。
#include<stdio.h>
#define n1 10
int main()
{
int n,i,j,a[n1];
printf("Enter num: ");
scanf("%d",&num);
for(i=1;i<n;i++){
if(n%i==0){
for(j=0;j<n;j++)
我不知道如何从这里继续。我很困惑。
#include<stdio.h>
#define n1 10
int main()
{
int n,i,j,a[n1];
printf("Enter number : ");
scanf("%d",&n);
j = 0;
for(i=1;i<n;i++){
if(n%i==0)
a[j++] = i;
}
printf("The factors of the number are: ");
for(j=0;j;j++)
printf("%d\n",a[j]);
}
答案 0 :(得分:0)
我认为您正在寻找的是
for(i=0, j=0;i<n;i++)
if(n%i==0)
a[j++] = i;
// print it
for (i=0; i<j; i++)
printf("%d ",a[i]);
答案 1 :(得分:0)
您非常接近,但是内部循环似乎毫无意义。找到因素后,只需存储它并跟踪已发现的因素:
<div id="block-1">
<div id="inner-block"></div>
</div>
<div id="block-2"></div>
我在 int factors(int n, int *factors)
{
int j = 0;
for (int i = 2; i < n; ++i)
{
if (n % i == 0)
{
factors[j++] = i;
}
}
return j;
}
上运行了此程序,并得到471113
进行了结帐。
请注意,这受[193, 2441]
的最大精度的限制(应该使用int
,对于实际代码更安全)。