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

Найбільший спільний дільник

Найбільший спільний дільник двох чисел(функція)

long long nsd (long long a,long long b)
{long long d,d1,d2,ns;
 d=a; d1=b; d2=d%d1;
 while(d2!=0)
   {d=d1;d1=d2;d2=d%d1;}
 ns=d1;
 return ns;}

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

Формування масиву простих чисел від 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;
}