C語言例題之輸出1000以內(nèi)的所有完數(shù)
一個(gè)數(shù)如果恰好等于它的各個(gè)因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數(shù)”。編程找出1000之內(nèi)的所有完數(shù),并按下面的格式輸出其因子:
6 its factors are 1,2,3
#include "stdio.h"
void main() {
int i, j, sum, k;
for (i = 2; i <= 1000; i++) {
// 每判斷一個(gè)數(shù)時(shí),將sum置為0
sum = 0;
// 這個(gè)地方不寫“=”,排除這個(gè)數(shù)自身 真因子指的是除了自身以外的約數(shù),完數(shù)概念中的“因子”是“真因子”
for (j = 1; j < i; j++) {
// 如果能被整除,則j即為i的因子
if (i % j == 0) {
// 將這個(gè)數(shù)的各個(gè)因子加起來
sum += j;
}
}
// 說明這個(gè)數(shù)是完數(shù),找到其因子并按照規(guī)定格式輸出即可
if (sum == i) {
// 輸出前半部分 “x its factors are”
printf("%d its factors are ", i);
// 輸出這個(gè)數(shù)的每一個(gè)因子
for (k = 1; k < i; k++) {
if (i % k == 0) {
printf("%d,", k);
}
}
// 光標(biāo)退到最后一個(gè)逗號位置之上然后輸出空格使逗號消失
printf("\b ");
// 換行
printf("\n");
}
}
}運(yùn)行結(jié)果:

初學(xué)C語言,如有錯(cuò)誤,還望指正,因考試需要,代碼運(yùn)行環(huán)境為:

不同編譯器和不同版本C語言代碼略有不同。
附:1000以內(nèi)所有完數(shù),并打印出因子——C語言
完數(shù)(Perfect number),又稱完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))的和(即因子函數(shù)),恰好等于它本身。如果一個(gè)數(shù)恰好等于它的因子之和,則稱該數(shù)為“完數(shù)”。
// 完數(shù) 真因子
#include <stdio.h>
int main(){
int i,j,k;
printf("1000以內(nèi)的所有完數(shù):\n");
for(i=1;i<=1000;i++){
int sum=0;
for(j=1;j<=i/2;j++){
if(i%j == 0){
sum += j; // 把所有的因子全部加起來
}
}
if(sum == i){ // 加起來的因子和如果等于i,就是完數(shù)
printf("%d its factors are: ", i);
for(k=1;k<=i/2;k++){
if(i%k == 0){
printf("%d, ", k);
}
}
printf("\n");
}
}
return 0;
}
總結(jié)
到此這篇關(guān)于C語言例題之輸出1000以內(nèi)的所有完數(shù)的文章就介紹到這了,更多相關(guān)C語言輸出1000內(nèi)所有完數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言文件操作中 fgets與fputs 函數(shù)詳解
這篇文章主要介紹了C語言文件操作中 fgets與fputs 函數(shù)詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
C語言深入探究水仙花數(shù)與變種水仙花數(shù)代碼
求水仙花數(shù)和變種水仙花數(shù)是非常適合初學(xué)者學(xué)習(xí)的代碼,其中包含的循環(huán)和邏輯方式等知識點(diǎn)。這既能起到對以往知識的復(fù)習(xí),也可以學(xué)習(xí)到一種不同的邏輯思考方式2022-05-05
C++ 中時(shí)間與時(shí)間戳的轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了C++ 中時(shí)間與時(shí)間戳的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
C++實(shí)現(xiàn)統(tǒng)計(jì)代碼運(yùn)行時(shí)間計(jì)時(shí)器的簡單實(shí)例
這篇文章主要介紹了 C++實(shí)現(xiàn)統(tǒng)計(jì)代碼運(yùn)行時(shí)間計(jì)時(shí)器的簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
C語言鏈表實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言鏈表實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C語言中函數(shù)棧幀的創(chuàng)建和銷毀的深層分析
在C語言中,每一個(gè)正在運(yùn)行的函數(shù)都有一個(gè)棧幀與其對應(yīng),棧幀中存儲的是該函數(shù)的返回地址和局部變量。從邏輯上講,棧幀就是一個(gè)函數(shù)執(zhí)行的環(huán)境:函數(shù)參數(shù)、函數(shù)的局部變量、函數(shù)執(zhí)行完后返回到哪里等等2022-04-04

