一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3.而6=1+2+3,因此6是“完数”。编程序找出n之内的所有完数,并严格按下面格式输出其因子:6 its factors are 1 2 3
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j,k,a[100],s=0;
scanf("%d",&n);
for(i=6;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
s=s+j;
}
if(s==i)
{
printf("%d ",i);
printf("its factors are ");
for(k=1;k<i;k++)
{
if(i%k==0)
printf("%d ",k);
}
printf("\n");
}
s=0;
}
}
#include <stdio.h>
#include <stdlib.h>
void wanshu(int n)
{
int i,j = 0;
int sum = 0;
int*p = (int*)malloc(sizeof(int)*n);
for(i=1;i<n;i++)
{
if(n%i==0)
{
p[j] = i;
sum += i;
j++;
}
}
if(sum == n)
{
printf("%d its factors are ");
for(i=0;i<j;i++)
{
if(i<j-1)
printf("%d ",p[i]);
else
printf("%d\n",p[i]);
}
}
free(p);
p = 0;
}
int main()
{
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
wanshu(i);
return 0;
}