C 求任意乙個大於1的自然數的最大質因數

2021-09-29 12:50:52 字數 1534 閱讀 9872

自然數概念指用以計量事物的件數或表示事物件數的數 。 即用數碼0,1,2,3,4,……所表示的數 。自然數由0開始 , 乙個接乙個,組成乙個無窮集體。

因數是指整數a除以整數b(b≠0) 的正好是整數沒有餘數,我們就說b是a的因數。

質數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。

質因數(素因數或質因子)在數論裡是指能整除給定正整數的質數。除了1以外,兩個沒有其他共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數(包括1本身)都是互質。正整數的因數分解可將正整數表示為一連串的質因子相乘,質因子如重複可以用指數表示。根據算術基本定理,任何正整數皆有獨一無二的質因子分解式。只有乙個質因子的正整數為質數。

每個合數都可以寫成幾個質數(也可稱為素數)相乘的形式 ,這幾個質數就都叫做這個合數的質因數。如果乙個質數是某個數的因數,那麼就說這個質數是這個數的質因數;而這個因數一定是乙個質數。

計算15的最大質因數?

我們都知道能被15整除的正整數是:1,3,5,15;也就是我們所說的因數;

即:1 x 15 = 15; 3 x 5 = 15;

其中滿足質數的因數為:3,5;則,最大質因數為:5

看了例子是不是瞬間明白了。

接下來。。。

得到所有的因數

根據上面的分析,我們得到以下因數:

//以15為例

//定義乙個引數

int n = 15;

//定義集合接收所有因數

listfactors = new list();

for (int i = 1; i <= n; i++)

}

得到結果:1,3,5,15根據因數得到質數

判斷該數除1和本身,是否能被其他數整除,若不能,則該數為質數。

//定義集合接收

listzhishu = new list();

foreach (int num in factors)

} if (!s&&num>1)//大於1的自然數

}

得到結果:3,5最終結果,取最大值

直接通過max()方法獲取

int maxvalue = zhishu.max();

console.writeline("最大因質數:" + maxvalue);

最後得到結果:5c#控制台輸出:

輸入乙個自然數n,求小於等於n的素數之和?

問題描述 輸入乙個自然數n,求小於等於n的素數之和 例如 樣例輸入 2 樣例輸出 2。解題思路 1 什麼是素數 素數 prime number 又稱質數,有無限個。乙個大於1的自然數,除了1和它本身外 因為1既不是素數,也不是合數 不能被其他自然數 質數 整除,換句話說就是該數除了1和它本身以外不再...

求n個連續自然數之和為乙個非負整數的陣列

def find combinations num n int num 0.5 這裡直接開根號,縮小迴圈範圍 res 前可以轉化成中間項的倍數,所以下面for迴圈求得是中間項的值 for i in range 2 n 1 if num i 0 mid 01 i 中間數 mid 02 int num ...

PAT 自然數的任意位數字 迴圈版 (C語言)

請編寫函式,用迴圈方法求自然數的任意一位數字。函式原型 int digit int number,int index 說明 引數 number 為非負整數,index 為數字的索引號 個位編號為 0,十位編號為 1,百位編號為 2,以此類推。函式值為 number 的第 index 位數字。若 in...