程式4 分解質因數

2021-07-05 21:32:29 字數 696 閱讀 5898

分解質因數就是將乙個合數分解成幾個質數(也叫素數)的乘積的形式。

如:6=2*3

基本思路:

從i=2到sqrt(n),遍歷,如果n%i==0,則表示i是n的乙個因子,然後再看這個i是不是素數(即質數),如果是,則列印,並使n = n/i。然後i再從2開始。

bool isprime(int

m) return true;

}void foo(int n)

}//if(n % i == 0)

} printf("%d", n);

}

第一種實現,**寫的太複雜。

(1)由於從2開始整除的,沒有必要判斷被n整除的這個數是不是質數,這個數必然是質數。

(2)沒有必要每次都從2開始。因為,已經從2開始過了,如果上一次迴圈時,n都不能被2整除,則後面的肯定不會被2整除。

這個時間顯然無法接受啊。

程式3 分解質因數

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

014 分解質因數

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

1020 分解質因數

每乙個大於等於2的自然數,均可寫成乙個或多個質數的乘積,例如 2 2 20 2 2 5這種將乙個整數分割成若干個質數之積的操作叫做分解質因數。現在,給你乙個整數n,請你編寫乙個程式,對其分解質因數。輸入為一行,正整數n,保證1 n 2147483647 1輸出n的質因數分解形式,格式為 n p1 e...