CDUTCM OJ 1122 不可摸數

2021-10-05 20:49:06 字數 708 閱讀 1344

有一種很神奇的數。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

yes

yesno

題意理解:注意s(n)並非成乙個大致的遞增趨勢,如s(10)=1+2+5=8 , s(11)=1 , s(13)=1;所以可以直接進行迴圈找出符合題意的n並進行相加,這裡寫乙個add函式來計算s(n)相加的結果。

#include

using

namespace std;

intadd

(int n)

else

}return sum;}}

intmain()

}if(lock==0)

else}}

return0;

}

**相關解釋:add函式中如果sum=1,則可以直接迴圈,但迴圈的初始值要為2,為1的話就會多加乙個1;主函式的lock主要就是看迴圈結束後是否找到s(m)=n,沒有找到那麼就是不可摸數,主函式直接迴圈從1開始往後面找有無滿足條件的題。

演算法 不可摸數

不可摸數 題目描述 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,...

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

hdu 1099 不可摸數

題目描述 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 ...