永发信息网

c语言pta 找完数问题

答案:1  悬赏:0  手机版
解决时间 2021-11-29 21:45
  • 提问者网友:流星是天使的眼泪
  • 2021-11-29 00:47
c语言pta 找完数问题
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-11-29 02:20
完数又称为完全数,而完全数是非常稀少的,所以没有必要求两数之间的完全数,下面的程序是找出输入数以内的所有完全数。可以看到:从10000到100000之间是没有完全数的,而实际上8128的下一个完全数在输入300000后仍然没有找到,但等待的时间过长(至少有几分钟)。

#include
#include
int main(void)
{
unsigned long long i,j,srs,hj,ys[1000];
int k;
printf("  这是一个找出输入的数以内所有完全数的程序
");
printf("  当输入数大于 100000 时,计算量较大,需等待较长时间

");
printf("  请输入一个大于 3 的正整数:");
while(scanf("%llu",&srs) == 1)
{
while(getchar() != '
')
continue;
if(srs<4)
{
printf("  输入错误!请重新输入:");
continue;
}
printf("  %llu 以内的完全数如下:
",srs);
for(i=4;i{
hj=0;
k=0;
for(j=2;jif(!(i%j))
{
ys[k]=j;
k++;
}
if(k)
{
for(j=0;jhj+=ys[j];
if(i==hj+1)
printf("  %10llu 共计有 %2d 个因数
",i,k+2);
}
}
printf("
  请输入一个大于 3 的正整数:");
}
return 0;
}



我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯