为什么使用Java查找数字素数的程序不起作用?

时间:2018-11-10 03:16:43

标签: java

我想知道为什么这个Java程序无法找到数字的主要因素。我在此站点和其他地方看到了许多解决方案,但是我想知道为什么这种方法不够用,因为它仅返回1作为输出?第一个“ if语句”处理从1到更低的数字,以返回-1(无效值),谢谢。

public class PrimeFactors{

    public static void main(String[] args) {
        System.out.println(getPrimeFactors(4));
    }

    public static int getPrimeFactors(int number) {
        if (number <= 1) {
            return -1;
        }

        for (int i = 1; i <= number; i++) {
            if (number % i == 0) {
                return i;
            }
        }
        return number;
    }
}

1 个答案:

答案 0 :(得分:3)

这里的代码将返回i的值,该值已设置为1。您对如何根据代码查找质数没有足够的了解。无论您将什么内容放入方法中,由于代码的设置方式,getPrimeFactors都将返回-1或1。数字除以1时的余数始终为0,因此始终为true,它将仅返回1。如果数字小于或等于1,则将返回-1。除非您修复语法,否则返回号本质上是无效代码。希望这对您有所帮助!