蓝桥杯-8-1因式分解(java)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯-8-1因式分解(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法提高 8-1因式分解 時間限制:10.0s 內存限制:256.0MB問題描述設計算法,用戶輸入合數,程序輸出若個素數的乘積。例如,輸入6,輸出2*3。輸入20,輸出2*2*5。樣例與上面的樣例輸入對應的輸出。例:數據規模和約定輸入數據中每一個數在int表示范圍內。
import java.math.BigInteger; import java.util.*; public class Main { public static void main(String args[]){ Scanner in=new Scanner(System.in); int n=in.nextInt(); if(isPrime(n)){ System.out.println(n); }else{ boolean flag=true; while(n%2==0){//減少運算時間 if(flag){ System.out.print(2); flag=false; } else{ System.out.print("*2"); } n/=2; } while(n!=1){//結束標志,注意不是0 for(int i=3;;i+=2){ if(isPrime(i) && n%i==0){ if(flag){ System.out.print(i); flag=false; }else{ System.out.print("*"+i); } n/=i; break; } } } } } public static boolean isPrime(int a){//判斷素數函數 if(a==2) return true; if(a%2==0){ return false; } boolean flag=true; for(int i=3;i<=Math.sqrt(a);i+=2){ if(a%i==0){ flag=false; break; } } return flag; } }
總結
以上是生活随笔為你收集整理的蓝桥杯-8-1因式分解(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯-用宏求球的体积(java)
- 下一篇: 蓝桥杯-9-1九宫格(java)