1

これが私の問題です。yコードで、その 1 つの値に余りがないかどうかをチェックしてから、メッセージ プライムを表示する必要があります。現在、 のすべての値のメッセージを表示しています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

「素数」をループの外に移動する必要があります。メソッドは、それが素数でないかどうかを確認し、ループを反復するたびに「素数です」と出力します。「プライムではありません」が印刷されない場合にのみ、「プライムです」と印刷する必要があります。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 に答える