題解定義質數為因數只含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號節點的顏色,...