Java 分解质因数 Mooc

Java 分解质因数 Mooc

题目内容:

每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。

输入格式:

一个整数,范围在[2,100000]内。

输出格式:

形如:

n=axbxcxd

n=n

所有的符号之间都没有空格,x是小写字母x。

输入样例:

18

输出样例:

18=2x3x3

时间限制:500ms内存限制:32000kb

注意:1.质数输出它本身。2.不是质数时,最后输出的质因数后面没有x

实现代码如下:

import java.util.Scanner;

public class Main {
	//判断是否为素数函数
	public static boolean isPrime(int i) {
		boolean isPrime = true;
		for(int k=2; k<i; k++) {
			if(i % k == 0) {
				isPrime = false;
				break;
			}
		}
		return isPrime;
	}
	//输出质因数函数
	public static int print(int n) {
		for(int i=2; i<=100000; i++) {
			if(isPrime(i)) {
				if(n % i == 0) {
					n = n/i;
					System.out.print(i+"x");
					//判断是否为最后一个质因数
					if(isPrime(n)) {   
						System.out.print(n);
						break;
					}
					else {
						break;
					}
				}
			}
		}
		return n;
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		//是质数输出它本身
		if(isPrime(n)) {
			System.out.println(n+"="+n);
		}
		else {
			System.out.print(n+"=");
			while(!isPrime(n)) {
				n = print(n);
			}
		}
		in.close();
	}
}

下一篇文章———>Java 完数 Mooc

上一篇文章———>pip 安装,更新,卸载模块方法

发布了14 篇原创文章 · 获赞 16 · 访问量 494

猜你喜欢

转载自blog.csdn.net/weixin_43347550/article/details/105197379
今日推荐