problem description
s(n)是正整數n的真因子之和,即小於n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何
數m,s(m)都不等於n,則稱n為不可摸數.
input
包含多組資料,首先輸入t,表示有t組資料.每組資料1行給出n(2<=n<=1000)是整數。
output
如果n是不可摸數,輸出yes,否則輸出no
sample input32
58sample output
yesyes
no
#include#include#define max 1000005
int a[max];
bool key[1005];//key=false:不是不可摸輸,key=true:是不可摸數
void get_table()
int main()
}}
hdu 1999 不可摸數
別人的 寫的很好先記錄一下 pragma warning disable 4996 include include include include include include using namespace std 題目只是求1000以內的不可摸數。我們可以想想乙個數的s n 大約等於多少,因為...
HDU1999不可摸數 暴力打表
看到這約數和第一反應是約數和函式,然後仔細一看不是正經的約數和函式,就去推去了,然後推的有點小複雜。數論函式那部分做多了 然後觀察也沒有用到什麼數論部分的特殊知識啊,難不成真的要暴力?大概分析了一下,應該要暴力1e6級別的。因為乙個數如果是合數,則至少有兩個非平凡因子,這兩個非平凡因子的和由均值不等...
hdu oj 1999 不可摸數
s n 是正整數n的真因子之和,即小於n且整除n的因子和.例如s 12 1 2 3 4 6 16.如果任何 數m,s m 都不等於n,則稱n為不可摸數.包含多組資料,首先輸入t,表示有t組資料.每組資料1行給出n 2 n 1000 是整數。如果n是不可摸數,輸出yes,否則輸出no 325 8 ye...