`
SIHAIloveYAN
  • 浏览: 124889 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

蓝桥杯-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;  
        }  
    }    
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics