查詢特定的合數 求素數 列舉

2021-09-02 13:16:56 字數 788 閱讀 6799

時間限制: 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
樣例輸出

12
o(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....