求全数问题的程序代码
求全数问题的程序代码
我自己弄了一个,不过就是数字很大时,效率非常低,哪为高手指教?
#include<stdio.h>
int main(void)
{
int sum=0,n=0;
int num;
int div[100];
printf("please enter an integer for processing :\n");
scanf("%d",&num);
for(int i=2;i<=num;i++)
{
for(int j=1,k=0;j<=i/2;j++)
{
if(i%j==0)
{
sum+=j;
div[k]=j;
k++;
}
}
if(sum==i)
{
for(int l=0;l<k;l++)
{
printf("%d\n",div[l]);
}
n++;
}
sum=0;
for(int m=0;m<k;m++)
div[m]=0;
printf("\n");
}
printf("%d\n",n);
return 0;
}