c语言编程题 一个数如果恰好等于它的因子之和,这个数就称为完数。例

c语言编程题一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数。编程序找出1000之内所有的完数,并按下列格式输... c语言编程题
一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数。编程序找出1000之内所有的完数,并按下列格式输出其因子:6 its factors are 1 2 3
展开
 我来答
匿名用户
2009-09-12
展开全部
#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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
macosfark
2008-04-16 · TA获得超过1425个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:147万
展开全部
#include
main()
{
int m,i,s;
for(m=2;m<1000;m++)
{
s=1;
for(i=2;i<=m/2;i++)
{
if(m%i==0)
s=s+i;
}
if(s==m)
{
printf("%d is 完数 its factors are ",m);
for(i=1;i<=m;i++)
if(m%i==0)
printf("%d ",i);
printf("\n");
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
作弊
2008-04-16 · TA获得超过946个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:0
展开全部
n = 2^(i−1)*(2^i − 1)

所有的完全数都符合上面的格式

i循环从0开始每次增加1,当n大于1000跳出

就可以得到
0,1,6,28,120,496,2016

这时候i只是6

然后输出的时候筛选一下就可以了

效率高很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西域牛仔王4672747
2018-08-02 · 知道合伙人教育行家
西域牛仔王4672747
知道合伙人教育行家
采纳数:30584 获赞数:146310
毕业于河南师范大学计算数学专业,学士学位, 初、高中任教26年,发表论文8篇。

向TA提问 私信TA
展开全部
一个数如果恰好等于它的因子之和,这个数就称为完全数,
如 6,28,496 等。无穷多个 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sbj518
2016-11-02 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5292万
展开全部

Module Module1

    Sub Main()

        Dim i, j, k As Integer

        For j = 2 To 1000

            k = 0

            For i = 1 To j / 2

                If j Mod i = 0 Then

                    k = k + i

                End If

            Next

            If j = k Then

                Console.WriteLine("完全数为" & k)

            End If

        Next

        Console.ReadLine()

    End Sub


End Module
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式