16 完美數(超時)

2021-08-15 07:09:23 字數 724 閱讀 8933

time limit: 1000 ms / memory limit: 65536 kb

description

任何乙個自然數的約數中都有1和它本身,我們把小於它本身的因數叫做這個自然數的真約數。

如6的所有真約數是1、2、3,而且6=1+2+3。像這樣,乙個數所有真約數的和正好等於這個數,通常把這個數叫做完美數。

古希臘人非常重視完美數。畢達哥拉斯發現它之後,人們就開始了對完美數的研究。

現在要求輸出所有在m和n範圍內的完美數。

input

輸入資料有多組,每組佔一行,包括兩個整數m和n(1≤m≤n≤99999999)。

輸入以0 0結束。

output

對於每個測試例項,要求輸出所有在給定範圍內的完美數,就是說,輸出的完美數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用乙個空格隔開;

如果給定的範圍內不存在完美數,則輸出no;

每個測試例項的輸出佔一行。

sample input

1 100 0 0
sample output
6 28
source
zjgsu
submit

#include

int main()

} if (x == 0)

} printf("\n");

if (!s) printf("no\n"); }

return 0; }

第16周 完美數(效率低,求改進)

問題及 檔名稱 num.cpp 作 者 單昕昕 完成日期 2014年12月12日 版 本 號 v1.0 問題描述 任何乙個自然數的約數中都有1和它本身,我們把小於它本身的因數叫做這個自然數的真約數。如6的所有真約數是1 2 3,而且6 1 2 3。像這樣,乙個數所有真約數的和正好等於這個數,通常把這...

PAT乙級 1030 完美數列(執行超時)

此題還有乙個測試點沒過 兩個坑 1,用long防止溢位兩個10的九次方相乘會溢位。2.執行超時問題要判斷。我這個判斷不行。要用第二個 首先將輸入的數字進行sort排序,從小到大。然後設定i,j記錄符合的陣列位置,count記錄符合要求的中間數字 的多少,初始為0,i從0 n,j從i count開始,...

尋找完美數

尋找完美數 首先先看一下這道題目 所有真因子之和小於其本身的數稱為虧數。如 4 的真因子 1 2 之和為 3,小於 4,是虧數。所有真因子之和大於其本身的數稱為盈數。如 12 的真因子 1 2 3 4 6 之和為 16,大於 12,是盈數。不盈不虧的數,即 所有真因子之和等於其本身的數,稱為完美數。...