完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於本身。根據該定義 可以得出判斷完數的函式如下:#include <stdio.h>int is_perfect_number(int n){int i,s=0;for(i = 1; i <=n/2; i ++)if(n%i == 0) s+= i;//統計所有真因子的和。if(s == n) return 1;//如果與原值相等,則該數為完數。return 0;//不是完數。}根據該函式,只需要對需要列印的範圍內1 ~1000做遍歷,並逐一呼叫該函式判斷,如果返回1則列印即可。完整程式碼如下:#include <stdio.h>int is_perfect_number(int n){int i,s=0;for(i = 1; i <=n/2; i ++)if(n%i == 0) s+= i;//統計所有真因子的和。if(s == n) return 1;//如果與原值相等,則該數為完數。return 0;//不是完數。}int main(){int n;for(n = 1; n < 1000; n++)if(is_perfect_number(n)) printf("%d,",n);}
完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於本身。根據該定義 可以得出判斷完數的函式如下:#include <stdio.h>int is_perfect_number(int n){int i,s=0;for(i = 1; i <=n/2; i ++)if(n%i == 0) s+= i;//統計所有真因子的和。if(s == n) return 1;//如果與原值相等,則該數為完數。return 0;//不是完數。}根據該函式,只需要對需要列印的範圍內1 ~1000做遍歷,並逐一呼叫該函式判斷,如果返回1則列印即可。完整程式碼如下:#include <stdio.h>int is_perfect_number(int n){int i,s=0;for(i = 1; i <=n/2; i ++)if(n%i == 0) s+= i;//統計所有真因子的和。if(s == n) return 1;//如果與原值相等,則該數為完數。return 0;//不是完數。}int main(){int n;for(n = 1; n < 1000; n++)if(is_perfect_number(n)) printf("%d,",n);}