首页 > 解决方案 > 为什么这个使用 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;
    }
}

标签: java

解决方案


您在此处的代码返回 i 的值,您已将其设置为 1。您对如何根据代码找到素数没有足够的了解。无论您在方法中添加什么,getPrimeFactors 都将返回 -1 或 1,因为您的代码是如何设置的。一个数除以 1 的余数始终为 0,因此它始终为真,只会返回 1。如果该数小于或等于 1,则返回 -1。除非您修复语法,否则返回编号本质上是死代码。希望这可以帮助你!


推荐阅读