求出區間 a,b 中所有整數的質因數分解。

2021-07-26 09:35:28 字數 658 閱讀 9414

問題描述

求出區間[a,b]中所有整數的質因數分解。

輸入格式

輸入兩個整數a,b。

輸出格式

每行輸出乙個數的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是從小到大的)(具體可看樣例)

樣例輸入

3 10

樣例輸出

3=3

4=2*2

5=56=2*3

7=78=2*2*2

9=3*3

10=2*5

提示先篩出所有素數,然後再分解。

資料規模和約定

2<=a<=b<=10000

#include #include using namespace std;

// 判斷是否是質數

bool isprime(int n)

} if (i > n/2)

else }

int main()

} for ( int i = a; i <= b; ++i) // 從a開始處理直到b

else // 不是質數分別處理

else // 不能整除的話嘗試下乙個質數}}

cout << endl;

} return 0;

}

給定乙個整數,求出該整數的所有質因數

題目 質因數分解,給定乙個整數,求該數的所有質因數,例如 90 2 3 3 5。質數又稱素數,有無限個。乙個大於1的自然數,如果除了1和它自身外,不能被其他自然數整除 除0以外 的數稱之為素數 質數 否則稱為合數。根據算術基本定理,每乙個比1大的整數,要麼本身是乙個質數,要麼可以寫成一系列質數的乘積...

分解正整數的質因數

首先,由算術基本定理可知,任何乙個大於1的正整數,都可以分解成若干個質數的乘積,並且這種乘積的形式是唯一的。所以,對於整數分解,如果先從最小的質數n 2開始進行分解,如果能整除,就只取商,直到不能除時,n 然後判斷n是否大於現在的商。如果大於,結束程式。否則繼續迴圈。核心 很短,只有10行左右。vo...

求整數N的質因數

暴力解決 先找出整數n的所有因數,再提出到其中不是質數的因數。有一種題,整數n由其所有質因數的積來表示 eg 35 3 5,24 2 2 2 3如何求解的問題 include include include includeusing namespace std int main for vector...