素数分解

package hello;

import java.util.Scanner;

public class Main {
	public static boolean isPrimer(int n) {
		boolean is_primer = true;
		for(int i = 2;i <= Math.sqrt(n);++i) {
			if(n % i == 0) {
				is_primer = false;
			}
		}
		return is_primer;
	}
	public static void main(String[] args) {
		int n;
		int cur = 2;
		boolean first = true;
		Scanner in = new Scanner(System.in);
		n = in.nextInt();
		System.out.print(n + "=");
		if(isPrimer(n)) {
			System.out.print(n);
		}else {
			while(n != 1) {
				if(n % cur == 0 && isPrimer(cur)) {
					if(first) {
						first = false;
					}else {
						System.out.print("x");
					}
					System.out.print(cur);
					n /= cur;
				}else {
					cur++;
				}
			}
		}
	}

}

  需要注意的是<=sqrt 而不是 <sqrt

posted @ 2021-11-28 14:01  Inami  阅读(52)  评论(0)    收藏  举报