Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- bool isPrime (int);
- int nrDivPrimi(int);
- int main()
- {
- cout <<"Introdu nr probl.";
- int pb; cin>>pb;
- switch (pb){
- case 1:{
- int s=0, cnt=0, n;
- cout<<"Introdu nr:"<<endl;
- do{
- cin>>n;
- if (n%3==0 && n!=0){
- s+=n;
- cnt++;
- }
- }while (n!=0);
- if (cnt!=1){
- float ma=s*1.0/cnt*1.0;
- cout<<"Media aritmetica este: "<<ma;
- }
- else
- cout<<"Nu exista astfel de nr.";
- }
- case 2:{
- int n; cout<<"n="; cin>>n;
- int nmax=INT_MIN, cnt=0;
- cout<<"Inntrodu nr:"<<endl;
- for (int i=0; i<n; i++){
- int x; cin>>x;
- if (isPrime(x) && x>nmax)
- nmax=x;
- if (nrDivPrimi(x)==3)
- cnt++;
- }
- cout<<"Cel mai mare nr prim este:"<<nmax<<endl;;
- cout<<"Exista "<<cnt<<" nr cu exact 3 div primi";
- break;
- }
- case 3:{
- int n; cout<<"n="; cin>>n;
- int nr1=1, nr2=1;
- int nr3=0, difmin=INT_MAX;
- int nrapropiat, nrapropiat2, ok=0;
- for (int i=3; nr3<n; i++){
- nr3=nr1+nr2;
- nr1=nr2;
- nr2=nr3;
- cout<<nr3<<" ";
- if (abs(nr3-n)==difmin){
- nrapropiat2=nr3;
- ok=1;
- }
- else {
- if(abs(nr3-n)<difmin){
- difmin=abs(nr3-n);
- nrapropiat=nr3;
- }
- }
- }
- if (!ok)
- cout<<"Numarul cel mai apropiat este: "<<nrapropiat;
- else
- cout<<"Numerele cele mai apropiate sunt: "<<nrapropiat <<" si "<<nrapropiat2;
- }
- }
- return 0;
- }
- bool isPrime(int n){
- if (n==1)
- return false;
- for (int i=2; i<n; i++){
- if (n%i==0)
- return false;
- }
- return true;
- }
- int nrDivPrimi(int n){
- int cnt=0;
- for (int i=2; i<n; i++){
- if (n%i==0 && isPrime(i))
- cnt++;
- }
- return cnt;
- }
Add Comment
Please, Sign In to add comment