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