NOI 44 第n小的質數 C

2021-07-29 16:59:14 字數 661 閱讀 9450

質數,又稱素數,定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數

驗證乙個數是否是素數,最常用的方法是:

給定乙個大於2的數,對這個數求平方根,如果這個數能被從0到平方根的數中任意乙個數整除,那麼這個數就是不是質數,否則這個數就是質數。

原理是:

如果乙個數不是質數,一定能分解成兩個數相乘的形式,這兩個數乙個》=sqrt(num),乙個<=sqrt(num),因此一定有乙個是小於等於平方根的,所以只需驗證到平方根就可以知道這個數是不是質數。

質數判斷:

bool isprime(int num)

}return true;

}

完整**:

#include "iostream"

#include "math.h"

using namespace std;

/*質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。*/

bool isprime(int num)

}return true;

}int main()

if(count>=n) {

cout<

noi 8163 第n小的質數

總時間限制 1000ms 記憶體限制 65536kb 描述 輸入乙個正整數n,求第n小的質數。輸入乙個不超過10000的正整數n。輸出第n小的質數。樣例輸入 10 樣例輸出 29 基本版 noi 8163 includeusing namespace std int main b 10001 int...

第n小的質數

這是我第一次發題解,有點小激動。首先題目 總時間限制 1000ms 記憶體限制 65536kb 描述 輸入乙個正整數n,求第n小的質數。輸入 乙個不超過10000的正整數n。輸出 第n小的質數。樣例輸入 10 樣例輸出 29 第一次編寫的 1 include2 using namespace std...

第n小的醜數

挑戰 獲得乙個醜數很容易,因為醜數可以通過 2x 3y 5z 獲得,同時任意醜數乘以 2 3 5 也是乙個醜數。但是如何獲得第 n 小的醜數呢?當 n 小於等於 6 時,第 n 小的醜數就是 n 本身 但 n 大於 6 時,需要通過前 6 個已知的醜數,從第 7 小的醜數開始計算,一直計算到第 n ...