JZOJ7月16日提高組T1 質數

2021-10-08 04:38:05 字數 1310 閱讀 6988

題解定義質數為因數只含1和其本身的數,對於n組詢問,試判斷每個數是否為素數。

第一行乙個正整數n,表示有n組詢問。

接下來n行,每行乙個正整數m,表示詢問m是否為質數。

輸出n行,每行乙個字串。

若是質數則輸出『prime』,若不是質數則輸出『not prime』。52

1089807289

9032482948

1000000007

prime

not prime

not prime

not prime

prime

樣例解釋:

10=2*5

89807289=3 * 11 * 11 * 13 * 19031

9032482948=2 * 2 * 439 * 5143783

20%的資料滿足n≤100,1題意很簡單,就是判斷乙個數是否是質數

這題的難點似乎就難在m是乙個非常大的數(≤1012

10^10

12) (其實也沒多大)

我們知道

當有乙個數n

nn,如果n=x

∗y

n=x*y

n=x∗

y,那麼x

xx和y

yy中較小的那個一點是小於√n√n

√n既然這樣,那麼就可以先預處理出1~106中所有的質數(7w多個),然後一一和需要判斷的那個數去匹配

如果可以整除—>合數,否則—>質數

注意判斷是否是106以內的質數

ps:這題正解似乎是miller_robin(反正我不會)

#include

#include

using

namespace std;

int n,i,j,num;

int p[

1000005];

long

long m;

bool bj,b[

1000005];

intmain()

scanf

("%d"

,&n)

;while

(n--)}

if(bj==

true

)printf

("prime\n");

else

printf

("not prime\n");

}fclose

(stdin);

fclose

(stdout);

return0;

}

JZOJ7月23日提高組T1 同餘

題解有一同餘方程 滿足p pp是質數,xi,jx xi,j 在0 p pp之間 問滿足同餘方程的方案數模乙個給出的數後的結果 手模資料或者打表可以發現,當c 0 c 0c 0時,所有答案都是一樣的 那麼就可以分成c 0 c 0c 0和c 0c 0 c 0兩種情況討論 轉移一下就好了 include ...

JZOJ7月25日提高組T1 挑竹籤

挑竹籤 小時候的遊戲 夏夜,早苗和諏訪子在月光下玩起了挑竹籤這一經典的遊戲。挑竹籤,就是在桌上擺上一把竹籤,每次從最上層挑走一根竹籤。如果動了其他的竹籤,就要換對手來挑。在所有的竹籤都被挑走之後,誰挑走的竹籤總數多,誰就勝了。身為神明的諏訪子自然會讓早苗先手。為了獲勝,早苗現在的問題是,在諏訪子出手...

JZOJ7月22日提高組T1 三色樹

題解給出乙個n個節點的無根樹,每條邊有非負邊權,每個節點有三種顏色 黑,白,灰。乙個合法的無根樹滿足 樹中不含有黑色結點或者含有至多乙個白色節點。現在希望你通過割掉幾條樹邊,使得形成的若干樹合法,並最小化割去樹邊權值的和。第一行乙個正整數n,表示樹的節點個數。第二行n個整數ai,表示i號節點的顏色,...