1

这是我的问题。我希望代码检查其中一个值y是否没有余数,然后显示消息素数。现在它正在显示每个值的消息y

这是我的代码:

for (y = 2; y <= x-1; y ++) {

        if (x % y == 0){

                NSLog(@"Not prime");                       
        }
        else if(x % y != 0) {                
                NSLog(@"Is prime");               
        }

}
return 0;
}

}
4

1 回答 1

1

您需要将“主要”移出循环。您的方法检查它是否不是素数,然后在每次迭代循环时打印“素数”。如果它从不打印“Not Prime”,您只需要打印“Is Prime”。每次检查数字时,您的 If-Else 都会打印一个或另一个。一个简单的 BOOL(布尔值)可以使这成为可能。

尝试这样的事情:

BOOL prime = YES;

for (y = 2; y <= x-1; y ++) {

          if (x % y == 0){
                //If this is ever the case, print "Not Prime", flag the Boolean to "No", and break out of the loop.  No need to check any further
                NSLog(@"Not prime");
                prime = NO;
                break;
        }

}

//If we never ran into "Not Prime", print "Is Prime"
if(prime == YES)
    NSLog(@"Is prime");

return 0;
于 2012-08-11T00:50:23.653 回答