C语言题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数有谁可以用c语言把这段程序写出来吗?加注释的哦!...
例如6=1+2+3.编程找出1000以内的所有完数
有谁可以用c语言把这段程序写出来吗?
加注释的哦! 展开
有谁可以用c语言把这段程序写出来吗?
加注释的哦! 展开
7个回答
推荐于2017-09-07
展开全部
#include <stdio.h>
#include <conio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
#include <conio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
展开全部
先看运行截图:
#include <stdio.h>
int isws(int a);
main(){
int i=2,count,s=0;
for(;i<1000;i++){
count = isws(i);
if(count){
int a = 1;
s = 0;
printf("%d its factors are ",i);
for(a;a<=i/2;a++){
if(i%a==0){
printf("%d",a);
s++;
if(s < count) printf(","); //用来判断后面是否还有因子,没有因子就换行
else printf("\n");
}
}
}
}
return 0;
}
int isws(int a){ //判断是否是完数,如果是返回因子的个数
int i=2,sum=1,count=1;
for(i;i<=a/2;i++){
if(a%i==0) {
sum+=i;
count++;
}
}
if(sum == a) return count;
else return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
<stdio.h>
#include
<conio.h>
void
main()
{
int
m,i,s;
for(m=1;m<=1000;m++)
//从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++)
//寻找在1到m之间,有多少m的因子
if(m%i==0)
//如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m)
//如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6
28
496
<stdio.h>
#include
<conio.h>
void
main()
{
int
m,i,s;
for(m=1;m<=1000;m++)
//从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++)
//寻找在1到m之间,有多少m的因子
if(m%i==0)
//如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m)
//如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6
28
496
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-08-02 · 知道合伙人教育行家
关注
展开全部
一个数如果恰好等于它的因子之和,这个数就称为完全数,
如 6,28,496 等。无穷多个 。
如 6,28,496 等。无穷多个 。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询