zoukankan      html  css  js  c++  java
  • JAVA基础:一个大于2的偶数始终可以分解成多个质数相乘

    package codeCompliation;

    import java.util.Scanner;

    public class isPrime {
     
     
     /**
      * 判断一个数是否是质数
      * @param number
      * @return
      */
     public static boolean isPrime(int number){
      int num=0;
      for(int i = 1;i<=number;i++){
       if(number%i==0){
        num++;
       }
      }
      if(num==2){
       return true;
      }else
       return false;
     }
     
     public static void main(String[] args) {
      int number=1;
      int dividend=1;
      while(true){
       System.out.println("请输入一个大于2的偶数:");
       Scanner scan=new Scanner(System.in);
       number=scan.nextInt();
       if(number%2==0&&number>0){
        break;
       }else
        System.out.println("输入错误,请重新输入:");
      }
      
      
      String reverse="";
      int num=number;  //(注意点第一个for中的取值,sum)
      for(dividend=2;dividend<num;dividend++){      //循环找出被除数里面的质数
       if(isPrime(dividend)&&number%dividend==0){     //找出被除数里的除数后,再找质数相除
        num=number/dividend;         //再把这个被除数赋值给sum;
        reverse+=(dividend+"*");        //然后把这个被除数加入reverse字符串中
        for(int i=1;i<num;i++){        //再判断这个被除数以内有能被上一个被除数整除的质数
         if(isPrime(i)&&num%i==0){       //在赋值给sum;
          num=num/i;          //如果是质数,且能被上一个被除数整除,则把这个质数加入到reverse中
          reverse+=(i+"*");         
          i=1; //(让下次循环到第二个for的时候从1开始循环    
          continue;
         }
        }
        
       }
      }
      System.out.println(number+"="+reverse+num);
      
     }
    }

  • 相关阅读:
    Python面向对象——内置对象的功能扩展
    学术日记#学术道德与人文素养
    Python面向对象——基本继承
    SqlServer——字符串处理函数
    SqlServer——索引
    生活小问题(1)
    win7-VS2010-IIS网站的发布问题
    PhoneGap+Cordova+SenchaTouch-01-环境搭建
    sql server数字转字符串出现科学计数法
    SQLServer 重启服务后,自增1的标识列一次增长了1000(转自博问)
  • 原文地址:https://www.cnblogs.com/smile-zcc/p/5559665.html
Copyright © 2011-2022 走看看