1. 程式人生 > >習題 5.9 程式設計序找出1000之內的所有完數。

習題 5.9 程式設計序找出1000之內的所有完數。

C程式設計 (第四版) 譚浩強 習題5.9 個人設計

一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。程式設計序找出1000之內的所有完數,並按下面格式輸出其因子:

6 its factors are 1, 2, 3

程式碼塊

#include <stdio.h>
int main()
{
    int n, i, j, k, s;
    int v[29];
    for (n = 1; n < 1000; n++){
        for (s = 0, i = 1, j = 0; i < n; i++){
            if
(n%i == 0){ v[j++] = i; s += i; } } if (n == s){ printf("%d its factors are ", n); for (k = 0; k < j; k++){ printf("%d", v[k]); if (k != j - 1) printf(", "); } printf
("\n"); } } return 0; }

方法2:

#include <stdio.h>
int main()
{
    for (int i=1; i<=1000; i++){
        for (int n[100], s=0, k=1, j=0; k<i; !(i%k) ? n[j++]=k, s+=k, k++ : k++);
        if(i==s){
            printf("%d its factors are ", i);
            for (int m=0; m<j; m++){
                printf
("%d", n[m]); if (m<j-1) printf(", "); } printf("\n"); } } return 0; }

相關推薦

習題 5.9 程式設計1000之內所有

C程式設計 (第四版) 譚浩強 習題5.9 個人設計 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。程式設計序找出1000之

程式設計 1000 之內所有

3、 一個數如果恰好等於它的因子之和,這個數就稱為“完數”,例如, 6 的因子為 1、 2、 3,而 6=1+2+3,因此 6 是“完數”。程式設計序找出 1000 之內的所有完數,並按下面的格式輸出其

5.題目: 一個數如果恰好等於它的因子之和,這個數被成為””,例如:6=1+2+3.請程式設計1000以內的

#include <stdio.h> int main() { int i; int j; int sum=0; int temp; for(i = 1;i <= 1000;i++) { temp = i; for(j = 1; j <=

ACMNO.11 一個數如果恰好等於它的因子之和,這個數就稱為"" 例如,6的因子為1、2、3,而6=1+2+3,因此6是"" 程式設計N之內所有,並按下面格式輸出其因子

寫在前面,心得感悟~ 程式碼越來越有難度! 這個ACM題,我除錯了 將近50次~ 一個小時! 真的是,年紀輕輕的搞什麼ACM呀! 關於題的解決思路放在下面再寫吧! 題目描述 一個數如果恰好等於它的因子之和,這個數就稱為"完數"。 例如,6的因子為1、2、3,而6=1+2+

程式設計1000以內的,並按下面格式輸出因子:6 its factors are 1 2 3

void is_Perfectnumber(int number) //判斷完數並輸出 { int i = 0; int j = 0; int sum = 0; int

題目:一個數如果恰好等於它的因子之和,這個數就稱為""例如6=1+2+3.程式設計1000以內的所有

兩個易錯點:1.sum應該在每次內迴圈結束之後進行初始化。2.對因子之和與數本身的判斷應該在內迴圈結束後。  public class Test9 { public static void main(String[] args) { int sum,i,j; for(i

題目:兩個乒乓球隊進行比賽,各三人甲隊為a,b,c三人,乙隊為x,y,z三人已抽籤決定比賽名單有人向隊員打聽比賽的名單,a說他不和x比,c說他不和x,z比,請程式設計序找出三隊賽手大的名單

通過迴圈巢狀安排對戰順序,再用if語句判斷避免參賽的隊員重複,最後通過題目要求篩選出符合題意的對手。 public class Test18 { public static void main(String[] args) { char a,b,c; for(a = 'x'; a &l

c語言 程式設計1000之內所有

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6的因子為1,2,3,6=1+2+3,因此6是“完數”。程式設計找出1000之內的所有完數。程式:#i

【程式19】 題目:一個數如果恰好等於它的因子之和,這個數就稱為“例如6 = 1+2+3.程式設計 1000以內的所有

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> /* 題目:一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6 = 1+2+3.程式設計 找出1000以內的所有完數。 */ int main(void){ int num

程式設計1000之內所有,並輸出其因子

 #include<stdio.h>  void main()  { int count=0,i,j;    for(i=1;i<=1000;i++)    {       int

作業題:輸入4個整數,其中最大的用一個函來實現. 分別使用結構化方法和函嵌套的方法

system 是否 進行 如果 div 使用 clu 函數 整型 之前在main()函數中的思路是: #include <iostream> using namespace std; int main(){ //求四個數中最大的數? /

輸出4個整數,其中最大的用函嵌套調用來處理

函數返回值 integer return 另一個 pos 結果 圖片 個數 數值 /* p183 例7.5 輸出4個整數,找出其中最大的數。用函數嵌套調用來處理 解題思路:這個問題並不復雜,完全可以只用一個主函數就可以得到結果。在main函數中調用max4函數,max4函數

從倆個有序陣列中第K小的要求時間複雜度O(logmin(m,n))

思路 該題目要求時間複雜度為O(log(min{m,n})) 所以不能直接遍歷任意一個數組這樣時間複雜度就不符合了。也不能對任意一陣列進行二分查詢,因為要求是倆個數組元素合併後的第K小的數,所以直接遍歷用二分遍歷任意一個數組也是行不通的。 故我們可以以

C++課後練習——程式設計1000之內全數說明:全數就是:除了它本身以外所有因子之和等於其本身,例如6=1+2+3,6就是一個全數

程式設計求1000之內的完全數。說明:完全數就是:除了它本身以外所有因子之和等於其本身,例如6=1+2+3,6就是一個完全數。 #include "iostream" using namespace

窮舉法求1000所有

題目:   一個數如果恰好等於它的因子之和,這個數就稱為 "完數",   例如6=1+2+3。程式設計找出1000以內的所有完數。 思路: 窮舉法(簡直就是萬能的存在~) 程式碼: package day5; public class&nb

(程式設計題)5-9用天平小球

三個球A、B、C,大小形狀相同且其中有一個球與其他球重量不同。要求找出這個不一樣的球。 輸入格式: 輸入在一行中給出3個正整數,順序對應球A、B、C的重量。 輸出格式: 在一行中輸出唯一的那個不一樣的球。 輸入樣例: 1 1 2 輸出樣例: C #include<stdio.h> int

程式設計基礎-----1--1000所有全數

完全數定義是:如果一個數等於除本身之外所有質因數的和,那麼就稱之為完全數. 比如6=1+2+3; 6就是一個完全數。 #include <iostream> using namespace std; void function(int n) { int i

程式設計1000以內的所有

一個數如果恰好等於它的因子之和,這個數就稱為“完數”(因子不包括它本身)。例如6=1+2+3.  找出1000之內的完數程式碼: #include <stdio.h> int