#include<bits/stdc++.h>
#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
using namespace std;
int n;
bool isprime[100000001];
int main(){
cin>>n;
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
double t=clock();
for (int i=2;i<=n;i++){
for (int j=2;j*i<=n;j++){
isprime[j*i]=0;
}
}
//for (int i=1;i<=n;i++){
// if (isprime[i]){
// cout<<i<<" ";
// }
//}
cout<<(clock()-t)/CLOCKS_PER_SEC;
return 0;
}
上述代码如果放到 IDE 中会出现问题(不是语法的问题,自己试一试就知道了)。但是如下代码却不会出现问题:
#include<bits/stdc++.h>
#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
using namespace std;
int n;
bool isprime[100000001];
int main(){
cin>>n;
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
time_t t=clock();//仅仅只有这里改变
for (int i=2;i<=n;i++){
for (int j=2;j*i<=n;j++){
isprime[j*i]=0;
}
}
//for (int i=1;i<=n;i++){
// if (isprime[i]){
// cout<<i<<" ";
// }
//}
cout<<(clock()-t)/CLOCKS_PER_SEC;
return 0;
}
why?