问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个数若刚好与小于它的所有因子之和相等,则称该数为一个"完数",如:6...

发布网友 发布时间:2024-10-23 12:23

我来回答

2个回答

热心网友 时间:2024-10-23 17:31

我给楼主代码吧,C语言的!
/*
2014年6月4日19:22:35
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1,2,3,而6 = 1 + 2 + 3,因此6是“完数”。
编程序找出1000之内所有的完数,并按下面格式输出其因子;
6 its factors are 1, 2, 3
注:根据补码的知识,int类型占4个字节,它所能表示的最大正整数为2的31次方减1,这个数等于2147483647
*/
#include <stdio.h>
#include <malloc.h>
void Input_1(int *, int *, bool *);
void Deal_1(int *, int *, int *);
void Deal_2(int *, int *);
void Deal_3(int *, int *, int *);
void Deal_4(int *, int *, int *);
void Output_1(int *, int *, bool *);
int main(void)
{
bool flag_1 = 1, flag_2 = 1;
while(flag_1)
{
int a, b, cont_1 =0;

Input_1(&a, &b, &flag_2);

Deal_1(&a, &b, &cont_1);

int * u = (int *)malloc(cont_1 * sizeof(int));

Deal_3(&a, &b, u);

Output_1(&cont_1, u, &flag_1);
}

return 0;
}
void Input_1(int * p, int * q, bool * r)
{
bool flag_1 = 1, flag_2 = 1;
while(*r)
{
printf("请按照提示输入要进行完数查找的起始数字和截止数字!\n");
*r= 0;
}
while(flag_1)
{
printf("请输入进行完数查找的起始数字(大于零的正整数):");
scanf("%d", p);
while(getchar() != '\n')
{
continue;
}
if(*p <1)
{
printf("您输入的数字有误,请按照提示重新输入!\n");
}
else
{
flag_1 = 0;
}
}
while(flag_2)
{
printf("请输入进行完数查找的截止数字(大于等于起始数字正整数):");
scanf("%d", q);
while(getchar() != '\n')
{
continue;
}
if(*q < *p )
{
printf("您输入的截止数字有误,请按照提示重新输入!\n");
}
else
{
flag_2 = 0;
}
}
return;
}
void Deal_1(int * p, int * q, int * s)
{
int i;
for(i=*p;i<=*q;i++)
{
Deal_2(&i, s);
}
}
void Deal_2(int * t, int * s)
{
int j, int sum = 0;
for(j=1;j<*t;j++)
{
if(*t % j == 0)
{
sum = sum + j;
}
}
if(*t == sum)
{
(*s)++;
}
}
void Deal_3(int * p, int * q, int * u)
{
int i, k = 0;
for(i=*p;i<=*q;i++)
{
Deal_4(&i, u, &k);
}
}
void Deal_4(int * t, int * u, int * v)
{
int j, int sum = 0;
for(j=1;j<*t;j++)
{
if(*t % j == 0)
{
sum = sum + j;
}
}
if(*t == sum)
{
*(u+ *v) = *t;
(*v)++;
}
}
void Output_1(int * s, int * u, bool * w)
{
char ch;
int i,j;
if(*s == 0)
{
printf("\n没有符合条件的数字!\n");
}
else
{
printf("\n符合条件的完数共有%d个,它(们)是:\n", *s) ;
for(i=0;i<*s;i++)
{
printf("%d,因子有:\n",*(u+i));
for(j=1;j<*(u+i);j++)
{
if(*(u+i)% j == 0)
printf("%-5d",j);
}
printf("\n");
}
}
printf("是否重新执行本程序?是请输入Y(y),否则退出程序:");
ch = getchar();
while(getchar() != '\n')
{
continue;
}
if(ch == 'Y' || ch == 'y')
{
printf("\n");
}
else
{
*w = 0;
}
}
/*
在VC++6.0中输出结果为:
请按照提示输入要进行完数查找的起始数字和截止数字!
请输入进行完数查找的起始数字(大于零的正整数):1
请输入进行完数查找的截止数字(大于等于起始数字正整数):10000
符合条件的完数共有4个,它(们)是:
6,因子有:
1 2 3
28,因子有:
1 2 4 7 14
496,因子有:
1 2 4 8 16 31 62 124 248
8128,因子有:
1 2 4 8 16 32 64 127 254 508 1016 2032 4064
是否重新执行本程序?是请输入Y(y),否则退出程序:Y
请输入进行完数查找的起始数字(大于零的正整数):1
请输入进行完数查找的截止数字(大于等于起始数字正整数):1000
符合条件的完数共有3个,它(们)是:
6,因子有:
1 2 3
28,因子有:
1 2 4 7 14
496,因子有:
1 2 4 8 16 31 62 124 248
是否重新执行本程序?是请输入Y(y),否则退出程序:N
*/

热心网友 时间:2024-10-23 17:27

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在线坐等,西游记片头曲叫什么名字?,劳驾你们 ...想要《西游记》孙悟空大闹天宫时的那个歌曲?,劳驾喽 亲们给个,西游记片头曲叫什么名字?,劳驾大家 希望有亲告诉,西游记片头曲叫什么名字?,劳驾亲们 基金日涨幅0.00%是什么意思? 大盘涨了可是基金增长为0,是什么情况 柯南铃木特快车是哪一集 右腹部靠近腰一阵一阵疼,绞痛不是很剧烈但是频繁_百度拇指医生 铃木特快列车是哪一集 股票美人肩是什么意思 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6... Can you speak C___?Yea,I can.I'm from China. you___back from china.a.am b.is c.are where ___ your cousin come from? he ___ from Shandong. a.is,c... 乌蛇的繁殖饲养 肇庆欧耕泥克电子商务有限公司怎么样? 这是肇庆那里?谢谢! 北京农商银行网银如何开通? 头上摔个软包的解决方法是什么 种小葱教你一招,只需葱根和一个塑料瓶,小葱疯长一茬一茬吃不完 ...加减键只有预约键,按蛋糕键显示18分钟,结果蒸出来不熟请问怎么用要... 电压力锅做蛋糕,锅底抹油了,但是下面糊了,上面太软了,会粘到案板上,会... 加密软件驱动层加密技术成为透明加密的主流技术 天上有哪些星 天空中除了木星还有什么星? 新鲜昙花的吃法和功效 刑事诉讼中的法定代理人和近亲属有什么关系 上海至信阳的大巴在哪个车站坐,第一次来上海,现在在朱泾,求从朱泾到上... 大家帮我想几个QQ个人说明. 挑选羽绒服的方法 胖女人怎样挑选羽绒服呢 ...的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数... ...is from___. a.American b.America c.Chinese d.British 2.The stu... ...they are___.A America;China B America;Chinese C American;Chinese... 有没有类似于进击 的巨人里Vogel im K01fig这种类型的德文歌 ...China. (变为一般疑问句)___ ___ from China?小题2:I have a knif... 葡萄糖酸钙注射液静脉注射时如漏出血管外该怎么处理 猫腹水怎么引起的?有什么症状?怎么治疗? 静脉滴注氯化钙时,漏出血管,怎么救治? 注射艾丽薇一年后眼部有血管漏出是怎么回事 猫咪为什么会漏出半个舌头 脚畸形 100分 等!! 脚畸形怎么治。这好治吗。 我的大脚趾畸形就是往里偏,这样就会让脚边上骨头突出一块,这几天不知 ... 媒体曝人乳交易乱象,卖家利用社交平台出售冷冻人乳,这合法吗?私下售卖... 运动会跑步后第三天,小腿抽筋肿胀,该怎么办? 伊利切维奇个人简介 丹尼·阿弗迪奇基本资料 自愿离婚的流程是怎么样的 办理自愿离婚的流程是怎样的 海信电视怎么无线连电脑