要找到完全数,但是怎么输出他的因子呢?。例如6=1+2+3。按照6,its factors are 1,2,3格式输出。只会判断不会输出,范围是1到1000
#include <stdio.h>
int main() {
int i, j, sum;
for (i = 1; i <= 1000; i++) {
sum = 0;
for (j = 1; j <= i/2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d: ", i);
for (j = 1; j <= i/2; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
return 0;
}
#include <stdio.h>
int func(int n,int *yz,int *count)
{
int sum = 0;
*count = 0;
for(int i=1;i<n;i++)
if(n%i==0)
{
yz[*count] = i;
(*count)++;
sum += i;
}
if(sum == n)
return 1;
return 0;
}
int main()
{
int i,j,yz[100],m=0;
for (i = 1; i <= 1000; i++)
{
if(func(i,yz,&m) == 1)
{
printf("%d,its factors are 1",i);
for(j=1;j<m;j++)
printf(",%d",yz[j]);
printf("\n");
}
}
return 0;
}
代码如下: