C語(yǔ)言例題之輸出1000以?xún)?nèi)的所有完數(shù)
一個(gè)數(shù)如果恰好等于它的各個(gè)因子之和,這個(gè)數(shù)就稱(chēng)為“完數(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è)地方不寫(xiě)“=”,排除這個(gè)數(shù)自身 真因子指的是除了自身以外的約數(shù),完數(shù)概念中的“因子”是“真因子” for (j = 1; j < i; j++) { // 如果能被整除,則j即為i的因子 if (i % j == 0) { // 將這個(gè)數(shù)的各個(gè)因子加起來(lái) sum += j; } } // 說(shuō)明這個(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è)逗號(hào)位置之上然后輸出空格使逗號(hào)消失 printf("\b "); // 換行 printf("\n"); } } }
運(yùn)行結(jié)果:
初學(xué)C語(yǔ)言,如有錯(cuò)誤,還望指正,因考試需要,代碼運(yùn)行環(huán)境為:
不同編譯器和不同版本C語(yǔ)言代碼略有不同。
附:1000以?xún)?nèi)所有完數(shù),并打印出因子——C語(yǔ)言
完數(shù)(Perfect number),又稱(chēng)完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))的和(即因子函數(shù)),恰好等于它本身。如果一個(gè)數(shù)恰好等于它的因子之和,則稱(chēng)該數(shù)為“完數(shù)”。
// 完數(shù) 真因子 #include <stdio.h> int main(){ int i,j,k; printf("1000以?xún)?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; // 把所有的因子全部加起來(lái) } } if(sum == i){ // 加起來(lá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語(yǔ)言例題之輸出1000以?xún)?nèi)的所有完數(shù)的文章就介紹到這了,更多相關(guān)C語(yǔ)言輸出1000內(nèi)所有完數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于C++中vector的兩個(gè)小tips分享
這篇文章主要給大家介紹了關(guān)于C++中vector的兩個(gè)小tips,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例
今天小編就為大家分享一篇關(guān)于C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12C語(yǔ)言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼
以下是對(duì)C語(yǔ)言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼進(jìn)行了分析介紹,需要的朋友可以參考下2013-07-07利用c語(yǔ)言實(shí)現(xiàn)卷積碼編碼器示例
這篇文章主要介紹了利用c語(yǔ)言實(shí)現(xiàn)卷積碼編碼器示例,需要的朋友可以參考下2014-03-03C語(yǔ)言演示對(duì)歸并排序算法的優(yōu)化實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言演示對(duì)歸并排序算法的優(yōu)化實(shí)現(xiàn),歸并排序的最差時(shí)間復(fù)雜度為(n\log n),最優(yōu)時(shí)間復(fù)雜為(n),存在可以改進(jìn)的空間,需要的朋友可以參考下2016-05-05解析C++浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值判定的小結(jié)
本篇文章是對(duì)C++中浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值的判定進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05win32 api實(shí)現(xiàn)簡(jiǎn)單的消息窗口示例
這篇文章主要介紹了使用win32 api實(shí)現(xiàn)簡(jiǎn)單的消息窗口示例,需要的朋友可以參考下2014-03-03