Selasa, 01 Maret 2011

prima erastothenes

#include
using namespace std;

void initBatasPencarian();
void initArray(bool *errei, int ukuran);
void tampilkanYangPrima(bool *errei, int ukuran);
void silangKelipatannya(bool *errei, int ukuran, int posisiSekarang);

int main()
{
initBatasPencarian();
system("pause");
return 0;
}

void initBatasPencarian()
{
int batasPencarian;
bool *errei;
cout << "angka batas pencarian bilangan prima : ";
cin >> batasPencarian;
if(batasPencarian>1)
{
errei=new bool[batasPencarian+1];
initArray(errei,batasPencarian);
tampilkanYangPrima(errei,batasPencarian);
}
else
initBatasPencarian();
}

void initArray(bool *errei, int ukuran)
{
errei[0]=false;
errei[1]=false;
for(int i=2;i errei[i]=true;
}

void tampilkanYangPrima(bool *errei, int ukuran)
{
for(int i=0;i {
if(errei[i]==true)
{
cout< silangKelipatannya(errei,ukuran,i);
}
}
cout< free(errei);
}

void silangKelipatannya(bool *errei, int ukuran, int posisiSekarang)
{
for(int i=1;i*posisiSekarang<=ukuran;i++)
errei[i*posisiSekarang]=false;
}

Tidak ada komentar:

Posting Komentar