赞
踩
#include<cstdio> const int N = 100000 + 5; bool prime[N]; void init(){ for(int i = 2; i < N; i ++) prime[i] = true; for(int i = 2; i*i < N; i ++){//判断改成i*i<N if(prime[i]){ for(int j = i*i; j < N; j += i){//从i*i开始就可以了 prime[j] = false; } } } } int main(){ init(); }
#include<cstdio> const int N = 100000 + 5; bool prime[N];//prime[i]表示i是不是质数 int p[N], tot;//p[N]用来存质数 void init(){ for(int i = 2; i < N; i ++) prime[i] = true;//初始化为质数 for(int i = 2; i < N; i++){ if(prime[i]) p[tot ++] = i;//把质数存起来 for(int j = 0; j < tot && i * p[j] < N; j++){ prime[i * p[j]] = false; if(i % p[j] == 0) break;//保证每个合数被它最小的质因数筛去 } } } int main(){ init(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。