试除法分解质因数

试除法分解质因数

大体思路:

从2这个质因数开始枚举,将n中所有的2剔除,随后判断质因数3…因为4这种数字被2操作过所以不会再重复出现!所以不必担心枚举出错!

package 素数;

import java.util.Scanner;

public class 试除法分解质因数 {
	static int p[]=new int[20];//p[i]表示第i大的质因数是多少
	static int c[]=new int[40];//c[i]表示第i大的质因数的个数有多少个
	public static void main(String[] args) {
		//从2这个质因数开始枚举,将n中所有的2剔除,随后判断质因数3.......因为4这种数字被2操作过所以不会再重复出现!所以不必担心枚举出错!
		Scanner sc=new Scanner(System.in);
		int m=0;
		int n=sc.nextInt();
		for(int i=2;i<=Math.sqrt(n);i++) {
			if(n%i==0) {
				p[++m]=i;
				while(n%i==0) {
					n/=i;
					c[m]++;
				}
			}
		}
		if(n>1) { 
			p[++m]=n;
			c[m]=1;
		}
		System.out.println("共有"+m+"个质因数");
		
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值