51nod 1106 質數檢測

2021-07-15 04:40:24 字數 704 閱讀 8112

傳送門:1106 質數檢測

根據質數的定義,在判斷乙個數n是否是質數時,我們只要用1至n-1去除n,看看能否整除即可。但我們有更好的辦法。先找乙個數m,使m的平方大於n,再用<=m的質數去除n(n即為被除數),如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50*50>1993,那麼我們只要用1993除以<50的質數看是否能整除,若不能即為質數.

#include

#include

#include

#include

using

namespace

std;

const

long

long maxn = 1e5+5;

bool visit[maxn+5];

long

long prime[200055];

int num ; //區間內素數的個數

void init_prim()

for (int j = 1; ((j <= num) && (i * prime[j] <= maxn)); ++j)

}}int main()

}if(!flag)

printf("yes\n");

else

printf("no\n");

}return

0;}

51Nod 1106 質數檢測

1106 質數檢測 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 關注 給出n個正整數,檢測每個數是否為質數。如果是,輸出 yes 否則輸出 no input 第1行 乙個數n,表示正整數的數量。1 n 1000 第2 n 1行 每行1個數 2 s i 10 9 ...

51nod 1106 質數檢測

給出n個正整數,檢測每個數是否為質數。如果是,輸出 yes 否則輸出 no input第1行 乙個數n,表示正整數的數量。1 n 1000 第2 n 1行 每行1個數 2 sii 10 9 output輸出共n行,每行為 yes 或 no。sample input 523 456sample out...

51Nod 1106 質數檢測

題目 給出n個正整數,檢測每個數是否為質數。如果是,輸出 yes 否則輸出 no 輸入 第1行 乙個數n,表示正整數的數量。1 n 1000 第2 n 1行 每行1個數 2 s i 10 9 輸出 輸出共n行,每行為 yes 或 no。樣例輸入 523 456樣例輸出 yes yesno yesno...