時間限制: 1 sec 記憶體限制: 128 mb
題目描述
自然數中除了能被1和本身整除外,還能被其他數整除的數叫合數。每個合數都可以寫成幾個質數相乘的形式,這幾個質數都叫做這個合數的質因數。比如8=2×2×2,2就是8的質因數。在1—n(n≤200000)按從小到大順序排列的自然數序列中,查詢第m個有x(2≤x≤6)個不同質因數的合數。例如,第3個有2個不同質因數的合數是12(12只有2、3兩個不同的質因數,在12之前有2個不同質因數的合數分別為6和10)。
輸入共1行,分別為m,x。
輸出共1行,為第m個有x個不同質因數的合數。
複製樣例資料
3 2樣例輸出
12o(nlogn + n);
/**/
#include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll;
using namespace std;
int m, x;
int tot, vis[200005], prim[200005];
void init() }}
int main()
if(num > x) break;
} if(num == x) ans++;
if(ans == m)
} return 0;
}/**/
素數 質數 合數的定義
質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。素數在數論中有著很重要的地位。比1大但不是素數的數稱為合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德 ...
篩法求素數 求100之內的素數
素數 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數 素數 現用0標記非素數,素數不標記。引用陣列,使0 100與陣列元素一 一相對應 0即a 0 1即a 1 2即a 2 注意特例,1 即a 1 不是素數,首先標記為0 剩下...
素數的快速列舉 二
半年前曾在我的blog發過一篇文章 http blog.csdn.net northwolves archive 2005 04 18 351998.aspx 對素數的快速列舉進行了初步 隨後的討論在http community.csdn.net expert topic 4395 4395751....