java - 质数循环仅将 "2"写入控制台。 java

标签 java eclipse loops numbers primes

我对 Java 或多或少是完全陌生的。我想我会尝试编写一个简单的循环来将 100 以下的素数列表输出到控制台中,作为练习 - 但是正如您可能通过这个问题的标题可以看出的那样,它给出的只是 2,仅此而已。我正在使用 Eclipse 来编辑和运行我的代码。这是:

    public class PrimeGen {

        public static void main(String[] args) {

            for (int num = 1,     // number to test
                     testfac = 1, // start factor to divide into num
                     numfacs = 0; // number of factors in current iteration of num
                 num <= 100;
                 num++)
            {
                while (testfac <= num){
                    if (num/testfac == Math.round(num/testfac)) numfacs++; // add 1 to numfacs if it divides evenly
                    testfac++;
                }
                if (numfacs == 2) System.out.println(num);
                numfacs = 0;
                testfac = 1;
            }
        }
    }

如果有人能帮助我解决这个问题,我将非常感激。谢谢!

最佳答案

if (num/testfac == Math.round(num/testfac)) 替换为 if (num % testfac == 0)

问题是 Math.round(num/testfac) 将始终等于 num/testfac 因为您正在进行整数除法。使用 % 检查整除性。

关于java - 质数循环仅将 "2"写入控制台。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719524/

相关文章:

javascript - 在 Javascript 中连续打印 X 数量的项目

c - 在允许输入之前循环在输入后运行多次

Java Lan Game list 运行服务器的IP地址

java - LinkedHashMap 中的removeEldestEntry 是如何实现的以及该方法的运行时/复杂度是多少?

java - Android Socket TCP 数据丢失

android - 无法使用 eclipse 导入 google_play_services

C 循环优化

java - 曲面分割着色器上的 GL_INVALID_OPERATION

python - 将 fortran 文件导入 python

java - 如何在运行 Eclipse 的 GWT 中获取 Neo4j Graph 数据库