|
|
#2
grmmylbs2016-03-23 09:26
import java.util.Scanner;
public class test { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Input number:"); int input = scan.nextInt(); //读输入的int数据 int i = 2; int count = 0; System.out.print(input + "="); while (input >= i) { //i从2开始累加直到大于输入的数据 if (input % i == 0) { //i累加过程中碰到能整除输入数据的话,就输出*i if (count > 0) { System.out.print("*"); } input = input/i; //除以一个因子后,用得到的商继续找因子,回到上面的if (input % i == 0) 处,用此时的i继续除这个商 System.out.print(i); count++; //count表示找到的因子个数 } //回到上面的if (input % i == 0) 处,用此时的i继续除这个商 else { //如果i不能整除,则i加一再去除 i++; } } if (count == 1) { //只找到1个因子,表示该因子就是输入的数本身,因为count为1时, if (count > 0) 没满足没有输入*,所以这里要这样写 System.out.print("*1"); } else if (count < 1) { //一个也没有表示输入的数小于i=2,否则至少会找到一个 System.out.print("1*1"); } System.out.println(); } } |
在看视屏学java 遇到一个作业 说用 循环 编写一个因式分解
我在网上看到很多代码,看到一个用while循环写的 但是看的不是很懂!
代码如下:求老师帮我注解下
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input number:");
int input = scan.nextInt();
int i = 2;
int count = 0;
System.out.print(input + "=");
while (input >= i) {
if (input % i == 0) {
if (count > 0) {
System.out.print("*");
}
input = input/i;
System.out.print(i);
count++;
}
else {
i++;
}
}
if (count == 1) {
System.out.print("*1");
}
else if (count < 1) {
System.out.print("1*1");
}
System.out.println();
}
}