
完数又称为完全数,而完全数是非常稀少的,所以没有必要求两数之间的完全数,下面的程序是找出输入数以内的所有完全数。可以看到:从10000到100000之间是没有完全数的,而实际上8128的下一个完全数在输入300000后仍然没有找到,但等待的时间过长(至少有几分钟)。
#include<stdioh>
#include <limitsh>
int main(void)
{
unsigned long long i,j,srs,hj,ys[1000];
int k;
printf(" 这是一个找出输入的数以内所有完全数的程序\n");
printf(" 当输入数大于 100000 时,计算量较大,需等待较长时间\n\n");
printf(" 请输入一个大于 3 的正整数:");
while(scanf("%llu",&srs) == 1)
{
while(getchar() != '\n')
continue;
if(srs<4)
{
printf(" 输入错误!请重新输入:");
continue;
}
printf(" %llu 以内的完全数如下:\n",srs);
for(i=4;i<srs+1;i++)
{
hj=0;
k=0;
for(j=2;j<i/2+1;j++)
if(!(i%j))
{
ys[k]=j;
k++;
}
if(k)
{
for(j=0;j<k;j++)
hj+=ys[j];
if(i==hj+1)
printf(" %10llu 共计有 %2d 个因数\n",i,k+2);
}
}
printf("\n 请输入一个大于 3 的正整数:");
}
return 0;
}
我认为这样最简单……以下是求1000以内的“完数”的程序:
#include<stdioh>
main()
{
int n,k,sum;
for(n=1;n<=1000;n++)
{
sum=0;
for(k=1;k<n;k++) if(n%k==0)sum+=k;
if(sum==n)printf("%d\n",n);
}
}
运行过了……希望对你有帮助。
#include "stdioh"
#include "conioh"
main()
{
static int k[10];
int i,j,n,s;
for(j=6;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i<j;i++)
{
if((j%i)==0)
{
n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu ",j);
for(i=0;i<n;i++)
printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}
getch();
}
clc
temp=0;
wanshu=0;
for j=1:10000
for k=1:j-1
if mod(j,k)==0;
temp=[temp k];
end
end
if j==sum(temp);
wanshu=[wanshu j];
end
temp=0;
end
disp(wanshu);
答案 6 28 496 8128
public class Test {
public static void main(String[] args) {
for(i=1;i<1000;i++) //对1到1000以内的数依次尝试
{
sum = 0; //给sum赋值,同时也是对上一次的值清空
for(j=1;j<=i/2;j++) //查找因子
{
if(i%j==0) // 如果是因子
{
sum+=j; //把当前的因子累加到sum中
}
}
if(sum==i) //判断是不是完数,即因子之和等于自身
{
Systemoutprint(i+" its factors are: "); //是完数,输出
for(j=1;j<=i/2;j++) //再次找出这个完数的因子
{
if(i%j==0) //输出各个因子
Systemoutprint(j+", ");
}
Systemoutprintln();
}
}
}
}
这些题百度里面都是找得到的
1、打开c语言编辑器,新建一个C语言空白文件:
2、然后就可以开始编写代码了,这里完数的意思就是一个数等于它的因子之和,比如6的因子为1、2、3,而6刚好是这些数之和。根据完数的定义,程序要输入一个数的范围,接着计算出所选取的整数i的因子,将各因子累加到变量s ,若s等于i,则可确认i为完数:
3、最后运行查询,输入一个范围,程序就会自动查找这个范围内的数字里有那些完数,计算完成后会将其结果打印出来:
以上就是关于c语言pta 找完数问题全部的内容,包括:c语言pta 找完数问题、怎样编一个求完数的程序啊、编写一个程序,找出6到1000之间的完数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)