分解質因數

2021-09-02 01:55:51 字數 690 閱讀 9480

題目描述

今天數學課上,桐桐學習了質數的知識:乙個正整數如果只能被1和它本身整除,那麼這個整數便是質數。桐桐就想:任意乙個正整數是否都能分解成若干個質數相乘的形式呢?輸入乙個正整數n,把它分解成質因子相乘的形式,如果為質數則輸出該數本身。如:36=2×2×3×3;19=19。你能幫助桐桐解決這個難題嗎?

輸入輸入乙個正整數n(2≤n≤109)

輸出把它分解成質因子相乘的形式,如果為質數則輸出該數本身,乘數從小到大輸出。

樣例輸入

複製樣例資料

99樣例輸出

99=3311

一開始,判斷是素數的時候。應該5=5.我直接輸出的5.真的是,以為我演算法有問題。瘋狂查詢其他的演算法。難得玩啊。

#include #include using namespace std;

int main()

return true;

}using namespace std;

int main()

{ int n,i,x,a;

int flag=0;

cin>>n;

x=sqrt(n);

a=isprime(n);

if(!a)

{for(i=2;i<=x;i++)

{if(n%i==0)

{if(flag==0)

cout《菜鳥一枚,以前啥也沒學。

分解質因數

質因數概念 每個合數都可以寫成幾個質數相乘的形式,這幾個質數就都叫做這個合數的質因數。如果乙個質數是某個數的因數,那麼就說這個質數是這個數的質因數。而這個因數一定是乙個質數。演算法原理 先根據需要分解的合數生成乙個質數表。然後依次從小到大依次除合數,每次除之後都將儲存步驟。表達不好,還是看 吧 us...

分解質因數

分解質因數 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 2 2 5 56 2 3 7 78 2 2 2 9 3 3...

分解質因數

大數的質因數分解一直以來是亟需解決的難題。本文從最基本的試除法開始,分解質因數的方法。下面的程式在開頭定義了乙個巨集opt,如果刪掉這個定義,就可以執行最原始的演算法。一 樸素演算法 include include include using namespace std define opt int...