- //求2~2000 的所有素数.有足够的内存,要求尽量快
- 方法一:
- #include <iostream>
- #include <cmath>
- using namespace std;
- int findvalue[2000]={2};
- static int find=1;
- bool adjust(int value){
- for (int i=0;i<find;i++)
- {
- if (value==2)
- return true;
- if (value%findvalue[i]==0)
- return false;
- }
- findvalue[find++]=value;
- return true;
- }
- void main(){
- for(int i=2;i<100;i++)
- adjust(i);
- for (int i=0;i<find;i++)
- cout<<findvalue[i]<<endl;
- system("pause");
- }
方法二:
- void main(){
- int a[20]={2};
- int k=3,i=1,j=1,m=0;
- for (;k<=20;k++)
- {
- for (m=0;m<j;m++)
- {
- if (k%a[m]==0)
- break;
- }
- if (j==m)
- a[j++]=k;
- }
- for (j=0;j<20;j++)
- {
- if (a[j]==0)
- break;
- cout<<a[j]<<endl;
- }
- system("pause");
- }