一个整数的所有最小公因数

今天做题看到一个题目,求解一个整数的最小公因数。好像做过哦,然后我就写了以下代码

for (int i = 0; i < number / 2 + 1; i++) {
	while (number % i == 0) {
		System.out.print(i + " ");
		number /= i;
	}
}

然而很巧的,当number = 120 时,输出了2, 2, 2, 3。
????我的5呢?实在找不到错误
设置断点,单步调试,然后发现了根源所在。
原因是for (int i = 0; i < number / 2 + 1; i++ ) 这个循环条件除了问题。每当出现了一个因数时,number的值就变化了。所以修改如下。

for (int i = 2; i < number + 1; i++) {
	while(number % i == 0) {
		System.out.print(i + " ");
		number /= i;
	}
}
发布了36 篇原创文章 · 获赞 35 · 访问量 6778

猜你喜欢

转载自blog.csdn.net/weixin_42568655/article/details/90740876