HDU1999不可摸數

2021-09-12 11:38:37 字數 484 閱讀 3278

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...