Ini adalah program untuk mencari bilagan prima dengan algoritma "Sieve of Aristoteles", yaitu dengan mencari bilangan prima dan menghapus semua kelipatan bilangan prima tersebut, cara ini memakan waktu yang relatif lebih singkat dibanding cara pembagian dan sisa pembagian, namun di sini efek yang lain adalah pengalokasian memory pada array yang cukup banyak.
Berikut adalah program dengan implementasi bahasa C++
#include
#include
using namespace std;
int main()
{
int batas;
cout << "Masukkan batas bilangan : "; cin >> batas;
bool* angka = new bool[batas+1];
for(int i=0;i<=batas;i++)
{
angka[i]=true;
}
// initialisasi awal
angka[0]=false;
angka[1]=false;
for(int i=0;i<=batas;i++)
{
if(angka[i])
{
int j=i;
while(j<=batas)
{
j+=i;
if(j<=batas)
{
angka[j]=false;
}
}
}
}
for(int i=0;i<=batas;i++)
{
if(angka[i])
{
cout << i << " ";
}
}
cout << endl;
delete angka;
system("pause");
return 0;
}
Tidak ada komentar:
Posting Komentar