要求输出一个数的因子
比如10
就输出
2,5.这样
我按照一个循环想要将所有因子列出,直到输入数除因子到1
import java.util.Scanner;
public class DivisionFactor
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
System.out.printf("Enter a integer: ");
int i = input.nextInt();
int factor=2;
boolean flag=false;
while(i!=1)
{
if(flag)
{
System.out.printf(", ");
}
if(0 == i%factor)
{
System.out.printf("%d",factor);
i /= factor;
factor++;
flag=true;
}
}
System.out.printf(".");
}
}
但是实际上只有2正常输出了,其他数字可能无限输出字符,或者就不出结果
但是我没有看错逻辑错误
刚刚在选修课上学java没2周,真是谢谢各位了
------解决思路----------------------
你的程序我没看懂,求因数应该是非常简单的啊。如果是要求素因数那就要复杂一些了。特别是求一个很大的半素数的素因数。
import java.util.Scanner;
public class DivisionFactor {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.printf("Enter a integer: ");
int i = input.nextInt();
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
System.out.println(j);
}
}
}
}
------解决思路----------------------
你的flag什么时候重新变回false?
------解决思路----------------------
输入大于2的数字时,楼主的程序明显是进入死循环了