質因數分解(C )(求最小質因數反求最大質因數)

2021-10-06 15:36:01 字數 644 閱讀 7709

p1075 質因數分解

題目描述

已知正整數nn是兩個不同的質數的乘積,試求出兩者中較大的那個質數。

輸入格式

乙個正整數nn。

輸出格式

乙個正整數pp,即較大的那個質數。

輸入輸出樣例

輸入 21

輸出 7

說明/提示

n <= 2*10^9

noip 2012 普及組 第一題

//直接找最大質因數會超時,所以先求出最小質因數,再用n除以這個數,

//便可以得到最大質因數。(因為n規定是由兩個不同的質數的乘積,

//所以相除後一定為最大質因數。同理,n開方後的數不可能為整數,

//所以它的兩個質因數一定乙個大於n的算術平方根,另乙個小於n的算術平方根)

#include

#include

using

namespace std;

intmain()

}//是質數

if(bo)}}

return0;

}

【注意】:有時候直接求難求、超時、麻煩時,可以考慮求反面,再轉換一下即可。

有時候可以適當利用算術平方根縮小範圍。

質因數分解

題目16 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完 成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新...

質因數分解

短除法 求乙個數分解質因數,要從最小的質數除起,一直除到結果為質數為止。分解質因數的算式的叫短除法 和除法的性質差不多,還可以用來求多個個數的公因式 求 最大公因數的一種方法,也可用來求 最小公倍數。求幾個數最大公因數 的方法,開始時用觀察比較的方法,即 先把每個數的因數找出來,然後再找出公因數,最...

質因數分解

講乙個數分解為幾個質數相乘的結果 int a maxn 用來存質因數 int b maxn 用來存質因數的個數 int main if n 1 不能忘記這一步操作 輸出 第1種寫法 a a a b b b b c c printf 第一種寫法 for int i 1 i tot i else pri...