题目要求:编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和,例如 6 的因子是 1,2,3,而 6=1+2+3,故 6 是一个完数。/*求出 1000 以内的所有完数以及它的因子*/# include int main( void )int i, j, sum;/*第一个循环,检查从 1 到 1000 中的每一个数字是不是完数如果是完数,输出完数和它所有的因子*/for( i = 1; i = 1000; +i )/*检查该数字是否是完数方法:从 1 到 i-1,依次取余,余数为 0,说明是它的公约数,累加公约数,最后的值如果等于 i,这说明 i 就是完数。*/sum = 0;for( j = 1; j i; +j )if( i%j = 0 )sum += j;if( sum = i )printf( 完数是: %d,它的因子是:, i );/* 这个 for 循环是将其所有因子取出和第 22 行的 for 循环思路是一样的 */for( j = 1; j i; +j )if( i%j = 0 ) printf( %d , j );printf( n );return 0;/*VC+6.0 输出的结果是=完数是:6,它的因子是: 1 2 3完数是:28,它的因子是:1 2 4 7 14完数是:496,它的因子是:1 2 4 8 16 31 62 124 248=*/这个方法在理解起来是最简单的,但是时间复杂度比较高,考试的话没有什么问题的哦。。
《C语言打印出1000以内完数及其因子算法》由会员豆浆分享,可在线阅读,更多相关《C语言打印出1000以内完数及其因子算法》请在金锄头文库上搜索。