#include <iostream.h>
#include <math.h>
class prima{
friend istream& operator>>(istream& , prima&);
friend ostream& operator<<(ostream& , prima&);
public:
prima(){awal=3; akhir=50;}
int aprima(int n);
private:
int awal, akhir;
};
istream& operator>>(istream& masukan, prima& bil){
cout<<"mulai dari :"; masukan>>bil.awal;
cout<<"berakhir pada:";masukan>>bil.akhir;
return masukan;
}
ostream& operator<<(ostream& keluaran, prima& bil){
int banyak = 0;
keluaran<<" bilangan prima antara "<<bil.awal;
keluaran<<" dan " << bil.akhir<<endl;
for (int k=bil.awal; k<=bil.akhir;k++){
if (bil.aprima(k)){
cout<<k<<endl;
banyak+=1;
}
}
keluaran<<banyak<<"bilangan prima yang ditemukan antara ";
keluaran<<bil.awal<<" dan "<<bil.akhir<<endl;
return keluaran;
}
int prima::aprima(int n){
if(n<2){
return false;
}
else if(2==n){
return true;
}
else if(n%2==0){
return false;
}
else{
int limit=int(sqrt(n)+1);
int pembagi=3;
while (pembagi<=limit){
if(n%pembagi==0){
return false;
}
pembagi+=2;
}
return true;
}
}
void main(){
prima x;
cin>>x;
cout<<x;
}
No comments:
Post a Comment