codevs——1675 大質數 2
阿新 • • 發佈:2017-08-08
題目 return names -o sum ext == add cloc
139
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229 //(不含n=233) 數據範圍及提示 Data Size & Hint
1675 大質數 2
時間限制: 1 s 空間限制: 1000 KB 題目等級 : 鉆石 Diamond 題目描述 Description
小明因為沒做作業而被數學老師罰站,之後數學老師要他回家把第n個質數找出來。
小明於是交給聰明的你。請你幫忙!【wikioi-1530】
…………………………以上為背景…………………………
老師懷疑小明僅僅是找到第n個質數,於是又叫小明把1到n以內(不包括n)的質數全部找出來。小明又找到了你……
輸入描述 Input Description一個正整數n。
(1<=n<=1000000)
輸出描述 Output Descriptionn以內的質數,每個一行。
樣例輸入 Sample Input233
樣例輸出 Sample Output2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
101
103
107
109
113
127
131
137
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229 //(不含n=233) 數據範圍及提示 Data Size & Hint
註意優化算法
渺!!
代碼:
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> using namespace std; int n,ans,sum,tot;int read() { int x=0,f=1; char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) f=-1; ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();} return x*f; } bool pd(int x) { if(x==1) return false; for(int j=2;j*j<=x;j++) if(x%j==0) return false; return true; } int main() { n=read(); if(n>1) printf("2\n"); for(int i=1;i<n;i+=2) { if(pd(i)) printf("%d\n",i); } return 0; }
codevs——1675 大質數 2