蓝桥杯模拟测试——质数的因式分解

1:对于质数的因式分解我们要首先了解什么是因式分解:

####### 把一个多项式化为几个最简整式的乘积的形式,这种变形叫做把这个因式分解(也叫作分解因式)。它是中学数学中最重要的恒等变形之一,它被广泛地应用于初等数学之中,是我们解决许多数学问题的有力工具。因式分解方法灵活,技巧性强,学习这些方法与技巧,不仅是掌握因式分解内容所必需的,而且对于培养学生的解题技能,发展学生的思维能力,都有着十分独特的作用。

也就是说一个数字通过:x?=abc*d…;

把一个数分解成几成以几的形式,最终以2为最底的那个数;比方说:90=233*5

2:知道这个概念之后我们再来看一下题目:

	 * 将一个正整数分解质因数。例如:输入90,打印出90=233*5。
	 * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
	 * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n <>
	 * k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
	 * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
	 */

3:我们再来分解一下题目:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可
(2)如果n <>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

也就是说:我们先来获取一个数,设置一个定量k=2;然后用一个while语句,再里面套if判断k和n的值,如果获取的值?2就直接输出,然后break,终止循环判断;同样我们判断条件一致时:?!= k && ? % k == 0,当这个值不等于2的时候,并且取模等于0,就给他输出k的值,然后?这个数不断地/2;给他输出;最后给他一个不满足条件:k=k+1;终止就可以了;

最后然后我们再来看一下代码:

	Scanner sc = new Scanner(System.in);
	int n = sc.nextInt();
	int k = 2;
	System.out.print(n + "=");
	while (k <= n) {
		if (k == n) {
			System.out.println(n);
			break;
		} else if (n != k && n % k == 0) {
			System.out.print(k + "*");
			n = n / k;
		} else {
			k = k + 1;
		}
		比方说输入:90

最终结果:90=233*5

你可能感兴趣的:(java,算法)