VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 546|回复: 0

[转载] C语言找到完数的算法

[复制链接]
19_avatar_middle
在线会员 发表于 2016-10-28 17:51:13 | 显示全部楼层 |阅读模式
题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
1. 程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
main()
{
static int k[10];
int i,j,n,s;

for(j=2;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);
printf(“%d\n”,k[n]);
}
}
}




上一篇:C语言例题——累加求和算法
下一篇:经典C语言程序小例题
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-20 16:15

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表