求正整数N(N1)的质因数的个数,相同的质因数需要重复计算(java)
生活随笔
收集整理的這篇文章主要介紹了
求正整数N(N1)的质因数的个数,相同的质因数需要重复计算(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package Four;
/** 分解質因數* 素數常用來分解質因數,每個數都可以寫成一個或幾個質數相乘的形式* 其中每個質數都是這個數的質因數,把一個數用質因數相乘的形式表示出來,* 就稱為分解質因數* * 題目描述* 求正整數N(N>1)的質因數的個數,相同的質因數需要重復計算,例如120=2*2*2*3*5* 共有5個質因數* 對于每組數據,輸出N的質因數的個數* * */
import java.util.Scanner;
public class PrimeFactor {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("請輸入正整數N: ");int n = scan.nextInt();//由于不知道一個數到底有多少質因數,選擇輸入n的平方根可以最大化的減少數組長度提高運算效率int num = (int) Math.sqrt(n);int[] prime = new int[num];int count = 0;for(int i =2;i<=n;i++){boolean isPrime = true;for(int j =2;j<i;j++){if(i%j==0){isPrime = false;break;}}//將素數賦值進入素數數組if(isPrime){for(int k =0;k<prime.length;k++){prime[k] = i;}}//輾除法for(int m = 0;m<prime.length;m++){int factor = prime[m];while(n%factor==0){n/=factor;count++;}}}if(n>1){count++;}System.out.println(count);}
}
總結
以上是生活随笔為你收集整理的求正整数N(N1)的质因数的个数,相同的质因数需要重复计算(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: audio标签下方有空隙的原因与解决方法
- 下一篇: 【.Net 学习系列】-- EF Cor