use*_*514 1 c++ loops for-loop
如何更改此循环以反向打印素数...从最大的一个开始
int main(){
bool prime;
for( int i=3; i<=10000; i++){
prime = true;
for(int n=2; n<=i-1; n++){
if( i%n == 0){
prime = false;
}
}
if(prime){
cout << i << " ";
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 12
您可以按如下方式反转for循环:
for( int i=10000; i>=3; i--) {
Run Code Online (Sandbox Code Playgroud)
话虽这么说 - 你也可以简化这个.您只需要检查,直到到达该数字的平方根.还要确保,当您发现某个数字不是素数时,您会立即突破:
int main() {
bool prime;
for( int i=10000; i>=3; i--) {
prime = true;
int max = sqrt(i)+1; // Don't check beyond this...
for(int n=2; n<=max; n++)
{
if( i%n == 0){
prime = false;
break; // This prevents you from continually checking!
}
}
if(prime){
cout << i << " ";
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)