> 其他 >
将一个正整数分解质因数
public class Yinshu {
public static void main(String[] args) {

while(true){
Scanner scanner = new Scanner(System.in);
int i = Integer.parseInt(scanner.nextLine());
System.out.print(i+"=");
int j=2;
for(;j
人气:239 ℃ 时间:2020-05-19 07:53:25
解答
感觉像是写错了,删掉这行吧没写错哦我看懂了。解释起来不太容易,我举个例子吧,假设i已经分解掉了一些因数,剩下了343(还有三个因子7),然后j已经循环到6,这时在for里面
while(j!=i){
\x09\x09\x09if(i%j==0){
...
\x09\x09\x09}else break;//343%6!=0,直接跳出while循环
\x09\x09\x09}
什么也不会做,然后j++到7,再一次for里面,进入while后,第一轮:
\x09\x09\x09if(i%j==0){//343%7==0成立
\x09\x09\x09\x09System.out.print(j+"*");//输出7*
\x09\x09\x09\x09i=i/j;//i=343/7=49
\x09\x09\x09}else
\x09\x09\x09\x09break;

while的条件j!=i依然成立,while进入第二轮:

if(i%j==0){//49%7==0成立
System.out.print(j+"*");//输出7*
i=i/j; //i=49/7=7
}else
break;
这时i已经等于7,while条件j!=i不成立,退出while循环
然后for的j++使得j达到8,这时for的循环条件j<=i也不成立,退出for循环
现在只剩下i=7,还剩一个因子7,而由于刚才的操作,j=8=i+1,所以输出j-1就正好把最后一个因子输出
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版