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);
      
     }
    }

  • 相关阅读:
    2017年7月10日 20:34:02 简易博客记录组
    Oracle审计表AUD$处理方法 (Z)
    Oracle中trace的几种(Z)
    查看oracle数据库是否归档和修改归档模式(转)
    oracle exp-000991
    基于公司级平台封装的SqlserverHelper
    pycharm运行测试程序提示no tests were found
    10-13 验证用户
    10-11 喜欢的数字
    10-1 Python 学习笔记
  • 原文地址:https://www.cnblogs.com/smile-zcc/p/5559665.html
Copyright © 2011-2022 走看看