显示一个正整数的所有素数因子

显示一个正整数的所有素数因子,第1张

给定一个正整数,输出该数的所有素数因子,例如6的素数因子为2,3。

首先素数的概念是:素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。代码实现:

public static boolean isPrime(int value)
	{
		boolean flag = true;
		if(value<2)
			flag = false;
		else
		{
			for(int i=2;i<value;i++)
				if(value%i==0)
				{
					flag = false;
					break;
				}
		}
		return flag;
}	

如果传入参数2,那么内部循环不符合条件,直接返回flag=true。大于2的正整数进入内部循环,进行判断。

计算出素数因子,首先随机生成一个正整数,每次i从2开始,判断该数是否是素数,如果是素数在判断是否是能被num整除,如果都满足输出i,num随后进行改变num=num/i;最后num变为1,所有结束条件是num>1.

		int num = (int)(Math.random()*(1000))+2;
		System.out.println(num);
		int count = 1;
		while(num>1)
		{
			for(int i=2;i<=num;i++)
			{
				if(isPrime(i)&&(num%i==0))
				{
					System.out.println(i+"  ");
					num=num/i;
					count*=i;
					break;
				}
			}
		}
		System.out.println("\n"+count);

输出结果如下:

916

2  2  229  

916

这里主要完成解决问题的思路,如果有错误,请大家多多指导,共同学习。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 显示一个正整数的所有素数因子

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情