hdu oj 1999 不可摸數

2021-06-23 00:41:16 字數 556 閱讀 5940

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

yesyes

no

題目解析:這個題題意就是給乙個數n,找到某個數(任何數)的因子和是否等於n;真因子就是除去它本身的因子。
解題思路:找出各數的真因子之和,用打表法比較合適,定義陣列(盡量大點)第一層for迴圈 i 用來儲存因子,
第二層j=i*n所以可以表示j的因子包含i所以就可求出各數的真因子數和。
#include #define n 500010

__int64 a[n];

int sum[1010];

void f ()

{ int i, j, m;

m = n/2;

for (i=1; i

hdu 1999 不可摸數

別人的 寫的很好先記錄一下 pragma warning disable 4996 include include include include include include using namespace std 題目只是求1000以內的不可摸數。我們可以想想乙個數的s n 大約等於多少,因為...

HDU1999不可摸數

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 是整數。outp...

hd水題 hdoj1999 不可摸數

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 是整數。outp...