вівторок, 22 березня 2016 р.

Решето Ератосфена (прості числа)

Формування масиву простих чисел від 2 до n.


#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char *argv[])
{int s,k,m,n,j,r; bool b;
cin>>n;
if( n<=200) 
 r=(int)(1.6*n/log(n))+1;
  else
 r=(int)(n/(log(n)-2))+1;
 int pr[r];
 pr[0]=2;pr[1]=3; j=2;m=3;
 do
 {m+=2;b=1;k=1;s=(int)(sqrt(m)+0.1);
   while(b && pr[k]<=s)
   if(m%pr[k]==0)
     b=0;
    else
    k++;
  if(b){ pr[j]=m;j++;}   
 }
 while(m<=n-2);
 int i;
 for(i=0;i<j;i++) cout<<pr[i]<<" ";
 cout<<endl;
     system("PAUSE");
    return EXIT_SUCCESS;
}

Немає коментарів:

Дописати коментар