C语言6.16 题目描述 一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因
C语言6.16题目描述一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,...
C语言6.16
题目描述
一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,并输出。
输入
无
输出
每一个完数一行。在每一行中,首先输出这个完数的值,再输出一个冒号,之后从小到大输出这个完数的所有因子,在每个因子前输出一个空格。
请注意行尾输出换行。
样例输入
无
样例输出
6: 1 2 3
28: 1 2 4 7 14
496: 1 2 4 8 16 31 62 124 248
测试成功就采纳 展开
题目描述
一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,并输出。
输入
无
输出
每一个完数一行。在每一行中,首先输出这个完数的值,再输出一个冒号,之后从小到大输出这个完数的所有因子,在每个因子前输出一个空格。
请注意行尾输出换行。
样例输入
无
样例输出
6: 1 2 3
28: 1 2 4 7 14
496: 1 2 4 8 16 31 62 124 248
测试成功就采纳 展开
2个回答
展开全部
#include <stdio.h>
int main(void){
int n,i,j,m;
for(i=4;i<1000;i+=2){
m=1;
for(j=2;j*j<=i;j++)
if(!(i%j)) m+=(j!=i/j ? j+i/j : j);
if(m==i){
printf("%d: 1",i);
for(j=2,n=i/2;j<=n;j++)
if(i%j==0)
printf(" %d",j);
printf("\n");
}
}
return 0;
}
追问
感谢,对的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询