繁体   English   中英

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

[英]Why is this program for finding Prime Factors of a number using Java not working?

我想知道为什么这个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;
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM