解题思路:
看题得:先求得完数的因子,再将因子求和才能判断是否为完数;所以首先要用双循环求得数的所有因子,用取余的办法即可;在取得因子后再求因子总和;用if进行判断;要输出题中?? its factors are??形式且不包含本身,则想到一个数的最大因子(除去他本身)不会大于它的一半,则在和满足情况下,在对所有因子进行一个判断,输出每个符合要求的值即可
注意事项:
sum需要在每次内部循环完成时进行清零,否则将导致程序出错
参考代码:
#include<stdio.h>
int main()
{
int i,n,m;//
int sum;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0; //每次内循环完成都要清零
for(m=1;m<i;m++) //内层循环求得因数
{
if(i%m==0)
{
sum=sum+m; //因子求和
}
}
if ( sum == i )
{
int k;
printf( "%d its factors are ", i );
for ( k = 1; k <=i/2; k++ ) //一个数的最大因子(除去他本身)不会大于它的一半
{
if ( i % k == 0 )
{
printf( "%d ", k );
}
}
printf( "\n" );
}
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:746 |
WU-小九九 (C++代码)浏览:1713 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
Minesweeper (C语言描述,蓝桥杯)浏览:1176 |
永远的丰碑 (C语言代码)浏览:608 |
前10名 (C语言代码)浏览:773 |
计算质因子 (C语言代码)浏览:778 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:532 |
汽水瓶 (C语言代码)浏览:579 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:683 |