Jumat, 08 April 2011

Program C++ untuk Menampilkan Bilangan Prima

#include<iostream>
using namespace std;

main()
{
int x,i,count=0;
cout<<"\nMasukkan sebuah angka : ";
cin>>x;
for(i=2;i<=x/2;i++)
{
if(x%i==0)
count++;
}
if(count>0 || x<2)
cout<<x<<"bukan bilangan prima\n";
else
cout<<x<<"\n bilangan prima\n";
}



Penjelasan:


main() ///////////////Ini adalah fungsi main dimana akan dipanggil pertamakali jika program dieksekusi.
{
int x,i,count=0; /////////////kita bikin 3 variable dengan tipe integer. variable count diisi dengan nol
cout<<"\nMasukkan sebuah angka : ";/////////////menampilkan dilayar
cin>>x;///////////////////meminta input
for(i=2;i<=x/2;i++) /////////////ini loop mulai dari 2 sampai n/2 kenapa? nanti saya jelaskan
{
if(x%i==0) //// ini kondisi yang artinya, jika sisa pembagian x dengan i sama dengan 0
count++; //// count yang kita isi dengan nol pertama kali tadi ditambah terus kalau kondisi "if" benar
}

/*
loop for ini akan mengecek apakah bilangan tersebut dapat dibagi 2 (apakah sisa pembagian x dengan 2 = 0). Jika ya, maka kita tambah counter "count". count++ sama artinya dengan count=count+1. Jadi, jika count bertambah maka bilangan ini bukan bilangan prima.

Kenapa mulai dari 2. Karena 2 adalah bilangan prima yang paling kecil. Inilah kenapa kita pakai batas atasnya adalah n/2 karena kita sudah mengecek 2 pertama kali. Jika bilangan yang kita periksa merupakan kelipatan 2, maka pada pemeriksaan ke n/2 kita akan mendapatkan sisa pembagian 0. Artinya bilangan tersebut bukan prima dan kita tidak perlu melakukan pengecekan selanjutnya (hemat 1/2 langkah ^_^ )

Apakah 2 masuk jadi bilangan prima (seharusnya masuk)?
Ya, kita tidak mengecek 2 karena loop dimulai dari 2 sampai 2/2. Loop gak jalan,
Yang artinya count tidak bertambah(tetap 0), dan 2 masuk sebagai bilangan prima.
*/
if(count>0 || x<2) /// artinya jika count nilanya lebih dari 0 atau x lebih kecil dari 2 (0 atau 1)
cout<<x<<"bukan bilangan prima\n";
else
cout<<x<<"\n bilangan prima\n";
}

Tidak ada komentar:

Posting Komentar