【发布时间】:2010-04-29 16:59:43
【问题描述】:
如何更改此循环以反向打印素数...从最大的第一个开始
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;
}
【问题讨论】:
-
请注意,反向操作会阻止编写 Eratosthenes 筛,这样会更快。
-
不,它没有——他可以按顺序找到它们并反过来打印它们。小于 10000 的素数可以很容易地放入堆栈。
-
取决于你所说的“去”是什么意思。它将 Sieve 变成 2-pass 算法,但不会影响存储需求。
-
如果你可以写"for (int i=3; i