質數,又稱素數,定義為在大於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 ...