回覆列表
  • 1 # 使用者834195712159

    程式碼示例:

    /*一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如 6=1+2+3,

    程式設計找出 1000 以內的所有完數。 */

    #include <stdio.h>

    #include <time.h>

    int main(void)

    {

    static int k[10]; // 定義一個靜態整型陣列

    int i, j, n, s;

    for (j = 2; j < 100000; j++) // j 是所求範圍內的所有數,目的:找出完數

    {

    n = -1; // n 是 k[10] 數組裡的下標

    s = j; // 將 j 賦值 給 s, 用 s 來做一系列的篩選判斷

    for (i = 1; i < j; i++) // 在 j 數字的範圍內再遍歷一次數字,目的:找出因子

    {

    if ((j % i) == 0) // 第一道篩選: 找出 數字 j 的因子

    {

    n++; // n++ 以後 n 等於 0

    // 第二道篩選 : 找出 s = 0

    s = s - i;

    //假設 s=j=1或者2或者3或者6, i 遍歷到了 1或者2或者3或者6,s 就會等於 0

    k[n] = i; // k[0] = 1, k[1] = 2, k[2] = 3

    }

    }

    if (s == 0) // 上面的 for 迴圈結束以後才執行 這個 if 語句

    {

    printf("%d is a PerfectNumber:", j);

    for (i = 0; i < n; i++)

    printf("%d,", k[i]);

    printf("%d\n", k[n]);

    }

    }

    printf("\nThe duration is %lf s.\n", ((double)clock()/CLOCKS_PER_SEC));

    return;

    }

  • 中秋節和大豐收的關聯?
  • 如何評價薩拉丁?