質因數分解,簡單易懂!

2021-10-21 21:23:35 字數 779 閱讀 3284

#include

using

namespace std;

const

int maxn =

1e5+10;

struct factor

;factor factor;

factor fac[10]

;//儲存分解的質因數

int prime[maxn]

,p_num=0;

//儲存質數

int num;

//準備分解的數

int number =0;

//不同質因數的個數

bool

is_prime

(int n)

void

get_prime()

void

get_num()

void

disassemble

(int n)

number++;}

if(n==1)

break;}

if(n!=1)

fac[number]

.x = n,fac[number]

.cnt =1;

}void

print()

intmain()

注意:

分解根據的原理是:

對於乙個正整數n來說,如果存在[2,n]範圍內的質因子,那麼這些質因子全部小於sqrt(n),或者最多隻存在乙個大於sqrt(n)的質因數。顯然不可能會有兩個這樣的數否則想乘會大於n。

質因數分解

題目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...