Java 嵌套的;至于;循环,混乱的结果

Java 嵌套的;至于;循环,混乱的结果,java,Java,我需要使用嵌套for循环来获取素数列表,下面是代码: public static void main(String[] args) { for (int i = 2; i <= 10; i++) { for (int d = 3; d <= 10; d = d + 2) { int result = d % i; System.out.

我需要使用嵌套for循环来获取素数列表,下面是代码:

public static void main(String[] args) {

        for (int i = 2; i <= 10; i++)
        {
            for (int d = 3; d <= 10; d = d + 2)
            {
                 int result = d % i;
                 System.out.println(result);

            }
        }
    }
publicstaticvoidmain(字符串[]args){

对于(int i=2;i这样运行,您将了解:

for (int i = 2; i <= 10; i++)
    {
        for (int d = 3; d <= 10; d = d + 2)
            {
                int result = d % i;
                System.out.println("i="+i+" d:"+d+" result:"+result);

            }
        }
    }
for(inti=2;i以下是Java代码(算法使用):

publicstaticvoidmain(字符串[]args){
int N=Integer.parseInt(args[0]);
//最初假设所有整数都是素数
布尔值[]isPrime=新布尔值[N+1];

对于(inti=2;i你所做的只是与找出其中的素数有一点关系,你使用的是
运算符,这是必需的,但仅此而已

实际上,您需要利用该操作的结果

您可以遵循以下
伪代码
:-

for i = 2 to 10 {

    1. set a boolean flag for prime to false;

    2. for j = 2 to (i - 1) {  // Since we just need to check modulus till that number
        1. check the result of `i % j`
        2. If any of the result in this loop is `0`, then `i` is not a prime number. 
           So, set the `prime` flag to false, and break out of loop, 
    }
    3. check the value of `prime` flag. If it is `true`, print number is `prime`. 
       Else print not prime 
}

我不会把代码给你,因为你自己试试会对你有好处。你将学习如何实现以算法步骤的形式给出的问题陈述。

你只是打印所有模运算的结果,而不是检查
素数
数所需的条件。你期望得到什么输出?我想打印一个列表,就像:1,3,5,7,99不是一个素数…3*3=9,对吗?然而,阅读评论我发现这已经退化为“请为我写代码”情况。投票结束。@dmckee你是对的,我需要检查它是否是一个素数。格式很好,但不是我想要的结果,谢谢。我需要它输出如下内容:1,3,5,7,9@Twocold他试图向你展示如何调试你自己的代码,通过查看打印输出,你应该能够看到你正在做什么g、 他不仅仅是在为你做作业。看起来几乎像是我自己代码的副本;)为了加快速度(只是一点点)替换你的循环标记:
for(int j=i+i;j这个问题的答案已经太多了,看起来没有一个会被接受;)编辑:我错了:)我已经测试了你的代码,但是它抛出了一个java.lang.ArrayIndexOutofBoundsCeptionControl设置N到10或任何你想要的数字。谢谢你的伪代码,我知道这里出了什么问题now@Twocold..很高兴看到您喜欢伪代码,而不是上面发布的完整代码。现在您可以实现它以获得所需的内容。:)
for i = 2 to 10 {

    1. set a boolean flag for prime to false;

    2. for j = 2 to (i - 1) {  // Since we just need to check modulus till that number
        1. check the result of `i % j`
        2. If any of the result in this loop is `0`, then `i` is not a prime number. 
           So, set the `prime` flag to false, and break out of loop, 
    }
    3. check the value of `prime` flag. If it is `true`, print number is `prime`. 
       Else print not prime 
}