将一个整数分解为质数的乘积

题目:将一个整数分解为质数的乘积

(质数就是除了1和它本身之外,再也没有整数能被它整除的数.比如:2..3.5.7.11.13.17.19.23.39.31…………………………
素数就是质数.质数之外的数称为合数.合数比如:4.6.8.16.32.64.72……………………………………
但是注意,1既不是素数也不是合数.)

方式1:

import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class test1 {

		    public static void main(String[] args) {
		    	Scanner scanner=new Scanner(System.in);
		    	 int n=scanner.nextInt();
		        serch(n);
		    }
		    public static void serch(int n){
		        List<Integer> list = new ArrayList<Integer>();
		        int i = 2;
		        int j = 0;
		        System.out.print(n+"=");
		        while (n >= 2) {
		            if (n % i == 0) {
		                list.add(i);
		                n /= i;
		                i = 2;
		            }else {
		                i++;
		            }
		        }
		        int t=list.size()-1;
		        for (Integer l : list){
		            System.out.print(l);
		            if (j<t) {
		            	 System.out.print("*");
		            	 j++;
					}
		            
		        }
	
		    }
}

 如输入120,结果如下

方式2:

import java.util.*;
public class test1 {

		    public static void main(String[] args) {
		    	Scanner scanner=new Scanner(System.in);
		    	 int n=scanner.nextInt();
		    	 primeCount(n);
		    }
		    public static void primeCount(int num) {
				StringBuffer sb = new StringBuffer();
				sb.append(num + "=");
				int minNumber = 2;// 定义最小的质数
				while (minNumber < num) {
					if (num % minNumber == 0) {
						num = num / minNumber;
						sb.append(minNumber + "*");
					} else {
						minNumber++;
					}
				}
				sb.append(minNumber);
				System.out.print(sb.toString());
			}
	}

输入90,结果如下 

发布了57 篇原创文章 · 获赞 36 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/hqy1719239337/article/details/102499121
今日推荐