2047 求前n個完全數

2021-09-28 10:07:29 字數 960 閱讀 9010

time limit: 10 second

memory limit: 2 mb

問題描述

完全數又稱完數、完美數、完備數,是一些特殊的自然數,它所有真因子(即除自己以外的因子)的和等於它本身。例如:6=1+2+3,6是乙個完數。

至今為止,人類共發現了46個完數,由於簡單型別的資料範圍有限,所以僅能求出前n(n<=8)個完數。

乙個整數n

有n行,輸出前n個完數,每個數占一行

3
6

28496

【題解】

如果直接暴力求解 會超時。10s都不夠用。

這題考的是數論。有點**。

完全數和梅森數素數有乙個一一對應的關係

即對於乙個梅森素數mp = 2^p - 1,必有 乙個完全數 2^(p-1) * mp;

比如:p=3

mp=2^3-1=7也是素數

則有完全數2^(3-1)*(2^3-1)=4*7=28

平台很奇怪,我用lld輸出,輸出來的結果是對的,在平台上卻顯示錯誤,後來我沒用lld輸出,一位一位地存入int陣列中,再一位一位地輸出。

【**】

#include #include const int maxn = 1000,maxl = 1000;

int num = 0,n;

void input_data()

bool can(long long x) //判斷x是否為質數

void get_ans()

for (int j = i;j >=1;j--) //再一位一位輸出

printf("%d",temp[j]);

printf("\n");

}p++;

}}int main()

1096 求完全數

description 輸入乙個正整數 repeat 0 repeat 10 做repeat 次下列運算 輸入 2 個正整數m 和n 1 m,n 1000 輸出m 到n 之間的所有完數 完數就是因子和與它本身相等的數 input 見sample output 見sample sample input...

(java)求前n個質數

求1 n的質數 public class prime return true public static void printprime int n public static void main string args public class prime return true public s...

求正整數2和n之間的完全數 改進演算法

亂七八糟的羊 描述 求正整數2和n n 30000 之間的所有完全數,一行輸出乙個。所謂完全數 因子之和等於它本身的自然數,如6 1 2 3,注意因子包括1但不包括自身。格式輸入格式 輸入n。輸出格式 一行乙個數,按由小到大的順序。樣例輸入樣例 7輸出樣例 6限制 時間限制 1000 ms 記憶體限...