C语言完数求解
小白在用C語言求解完數(shù)時遇到一個問題,希望大神能指點一二,謝謝!
題目:求1000之內(nèi)的完數(shù),完數(shù)定義:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就是“完數(shù)”。例如,6的因子是1,2,3,而6=1+2+3,因此6是完數(shù)。
我已經(jīng)寫出了程序(如下),但是程序會將相同語句輸出多次(如圖1),但實際要求相同語句輸出一次(如圖2),我試出了兩種修改方式(修改方式見代碼中注釋1和2,將注釋替換對應行語句,便能得到“相同語句輸出一次”的正確結(jié)果),我不明白為什么那樣修改就能正常輸出,希望大家能指點一二,謝謝啦!
#include<stdio.h> int main() {int sum;for(int i=2;i<1000;i++){sum=0;for(int n=1;n<i;n++){if (i%n==0) sum=sum+n;if (sum==i)//方式1:if (sum==i&&n==(i-1)){printf("%d its factors are ",sum);for(int n=1;n<i;n++)//方式2:for(n=1;n<i;n++){if (i%n==0) printf("%d ",n);}printf("\n");}}}return 0; }總結(jié)
- 上一篇: 总结之:CentOS 6.4系统裁减详解
- 下一篇: JAVA进阶day07JNI(java调