數學問題 質因數分解 1096

2022-05-02 04:21:08 字數 1074 閱讀 7064

因為乙個數最大的因數只能是sqrt(x),所以對於int整數範圍(1e9)內,最大的因數不會超過100000(1e5)。所以打乙個素數表,然後進行質因數判斷。

很經典的質因數分解題,只做了一點點改動,適合練習。

需要注意的是n=1的特殊情況判別。

ac**:

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define i scanf

#define ol puts

#define o printf

#define f(a,b,c) for(a=b;a#define ff(a,b) for(a=0;a#define fg(a,b) for(a=b-1;a>=0;a--)

#define len 100000

#define max (1<<30)-1

#define v vectortypedef

long

long

ll;using

namespace

std;

intprime[len];

int plen=0

;bool isprime(int

x)

return1;

}void

build_prime_list()

}}int

num[len];

intcnt[len];

intmain()

o("%d=

",n);

build_prime_list();

int i=0

;

while(n>1

) len++;

}i++;

}ff(i,len)

if(i!=len-1) o("*"

); }

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