Java will be a positive integer factorization

For example: the input 90, to print out 90 = 3 * 2 * 3 * 5.

package project;

import java.util.Scanner;

public class Question03 {

	public static void main(String[] args) {
		/**
		 * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
		 * 
		 * 实现思路
		 * 1.输入一个正整数,判断是否合格数据,不合格继续让用户输入
		 * 2.用循环求它的质因数,找到打印输出
		 */
           
		//1.输入一个正整数,判断是否合格数据,不合格继续让用户输入
		Scanner input = new Scanner(System.in);
		
		//提示用户输入 
		System.out.println("请输入一个大于2的正整数");
		
		int num = input.nextInt();
		
		//判断是否合格数据,不合格继续让用户输入
		while(num<=2) { //20
			System.out.println("输入错误,请重新输入一个大于2的正整数");
			num=input.nextInt();
		}
		
		//如果是一个素数(质数)  //方法
		while(isPrimeNumber(num)==true) {
			System.out.println("输入错误,"+num+"是一个素数,请重新输入一个大于2的非素数的正整数");
			num=input.nextInt();
		}
		
		
		//2.用循环求它的质因数,找到打印输出
		System.out.print(num+"=");
		int halfnum = num/2; //10
		for (int i = 2; i <= halfnum; i++) {
			if(num>i) {
				if(num%i==0) {
					System.out.print(i+"*");
					num = num/i; 
					i--;
					continue;
				}
			}
			else {
				System.out.print(i);
				break;
			}
		}
	}
	
	/**
	 * 判断是否是一个素数
	 * @param num
	 * @return
	 */
	public static boolean isPrimeNumber(int num) {
		for (int j = 2; j <=Math.sqrt(num); j++) {
		    if(num%j==0)
		    	return false;
		}
		return true;
	}

}

 

Other methods 

 

import java.util.Scanner;

public class Demo03 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入一个正整数:");	
		int i=input.nextInt();
		System.out.print(i+"=");
		
		int n=2;
		String yinshi="";
		while(true) {
			if(i%n==0) {
				i=i/n;
				if(i==1) {
					yinshi=yinshi+n;
					break;
				}
				yinshi=yinshi+n+"*";
			}else {
				n++;
				if(n>=i) {
					yinshi=i+"="+yinshi+n;
					break;
				}
			}
		}
		System.out.println(yinshi);
		
	}
}
import java.util.Scanner;

public class Demo{

	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		System.out.println("请输入正整数:");
		int x = input.nextInt();
		System.out.print(x+"=");
		for(int i=2;i<x;i++) {
			while(i!=x) {
					if(x%i==0) {
						System.out.print(i+"*");
						x=x/i;
					}
					else
						break;
					
			}
			
		}
		System.out.println(x);
	}

}
package com.yc.homework04;

import java.util.Scanner;


public class Demo {

	public static boolean zhishu(int n) { //判断传入的数是否为质数
		for(int j=2; j<=(int)Math.sqrt(n); j++) {
			if(n%j == 0) 
				return false;
		}
		return true;
	}
	
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		int n=2;//除数
		
		System.out.println("请输入一个数,将其分解质因数:");
		int num = input.nextInt();//被除数
		
		System.out.print(num+"=");
		if(num == 1)
			System.out.println("1");
		while(num != 1) {
			if((zhishu(n) == true) && (num % n == 0)) {
				System.out.print(n);
				num = num / n;
				if(num != 1) {
					System.out.print("*");
				}
			} else {
				n++;
			}
		}
	}

}

 

Published 35 original articles · won praise 5 · Views 863

Guess you like

Origin blog.csdn.net/m0_43443133/article/details/104561810