輸入n
1+2+3+...+n是素數輸出 wanwanwanwan 否則輸出 bowwowbowwow
とても賢い犬であるホリドッグ(holidog)くんは、足し算と素數判定をすることができます。 ホリドッグくんはある正整數についてそれが素數であるか尋ねられたとき、それが素數であるならwanwan
、そうでなければbowwow
と吠えます。
あなたは、ホリドッグくんに 11 から nn までの総和 1\ +\ 2\ +\ 3\ +\ …\ +\ n1 + 2 + 3 + … + n が素數であるかどうかを尋ねました。ホリドッグくんがどう吠えたかを出力するプログラムを書いて下さい。
素數とは、 11 とその數自身以外の正整數で割り切ることが出來ない 22 以上の正整數のことを言います。例えば 22や 33 や 1717 は素數です。 11 や 1010 は素數ではありません。
輸入格式:
入力は以下の形式で標準入力から與えられる。
$ n $
輸出格式:
1 行目には、 1\ +\ 2\ +\ 3\ +\ …\ +\ n1 + 2 + 3 + … + n が素數ならばwanwan
、 そうでなければbowwow
を出力せよ。
末尾の改行を忘れないこと。
輸入樣例#1
2輸出樣例#1
wanwan輸入樣例#2
5輸出樣例#2
bowwow輸入樣例#3
1輸出樣例#3
bowwow輸入樣例#4
999輸出樣例#4
bowwow1\ +\ 2\ =\ 31 + 2 = 3 であり、 33 は素數なので
wanwan
と出力します。
1\ +\ 2\ +\ 3\ +\ 4\ +\ 5\ =\ 151 + 2 + 3 + 4 + 5 = 15 であり、 15\ =\ 3\ ×\ 515 = 3 × 5 なので、bowwow
と出力します。
11 は素數ではありません。
1\ +\ 2\ +\ ...\ +\ 9991 + 2 + ... + 999 は素數ではありません。
洛谷部落格:點我
本蒟蒻的主要思想就是,先按照題目要求把 1+2+...+n的數 s 算出來,然後跑一遍尤拉篩,把[2,n+1] 的素數篩出來(一定是 n+1 !!!)最後把 s 和篩出來的素數一一對比即可。
#include #include #include using namespace std;
int n,cnt,a[200001],s;//a存素數,cnt存有(目前)多少個素數,s是1+2+...+n
bool b[200001];//存不是素數的倍數
int main()
for(i=2;i<=n+1;i++)//到n+1!!!
for(j=0;j}
} for(i=0;icout<<"bowwow"
}
數學(反素數)
定義 對於任何正整數n,其約數個數記為f n 例如f 6 4 如果存在乙個正整數n滿足 對於任意的正整數x 0乙個反素數的所有質因子必然是從2開始的若干個質數,因為乙個數是反素數,說明在跟它約數相同的數中,它是最小的。如果n 2t1 3t2 5t3 那麼一定有t1 t2 t3 t4.另外易知如果n ...
數學 反素數問題
1060 最複雜的數 把乙個數的約數個數定義為該數的複雜程度,給出乙個n,求1 n中複雜程度最高的那個數。例如 12的約數為 1 2 3 4 6 12,共6個數,所以12的複雜程度是6。如果有多個數複雜度相等,輸出最小的。輸入第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 100 第2 t...
數學之判斷素數
前面我們講了判斷素數的方法 複雜度o n 但是它太慢了,所以我們要有一種更快的判斷方法。好像似乎沒有在保證正確率的情況下更快的了.那就把正確率吃掉好了。很久很久以前,素數突然出現,帶來題目帶走題解又消失不見 判斷十分危險,複雜度誰最短 當然是miller rabin辣!某個神奇的定理 蒟蒻證明湊合著...