👤
DlakWanted
a fost răspuns

Se citeste un sir de n numere naturale.Sa se determine numarul de aparitii al celui mai mare numar prim din sir. eu am facut asa:

#include
using namespace std;
unsigned int n,k,max1=0,i,nr_citite,nr_aparitii,prim,continua;
int main()
{
cout<<"dati n=";
cin>>n;
nr_citite=0;
nr_aparitii=0;
continua=1;
while(continua==1)
{
cin>>k;
nr_citite=nr_citite+1;
prim=1;
for(i=2;i<=k-1;i++)
{
if(k%i==0)
prim=0;
}
if((k>=max1)&&(prim==1))
{
max1=k;
nr_aparitii++
}

if(nr_citite==n)
continua=0;
}
cout<<"numarul de aparitii al celui mai mare numar prim din sir este = "< return 0;
}


Răspuns :

Mai gandeste-te la numarul de aparitii al elementului maxim din sir


Asa arata mai bine:
#include <iostream>
#include <math.h>
using namespace std;

bool CheckPrime(int Nr);

  int main(){
        int n=0,BigPrime=0,Aparitii=0;
       do{
 
           cin>>n;
            if(CheckPrime(n) && n>BigPrime) {
                 BigPrime=n;
 
                Aparitii=0;
            }
 
           if(n==BigPrime) Aparitii++;
 
     }while(n!=0);

      system("pause");
      return 0;
}

bool CheckPrime(int Nr){
        bool IsPrime=true;
        if(Nr!=2){
                 if(Nr%2!=0){
                       for(int x=3;x<=sqrt((double)Nr);x+=2){
                                 if(Nr%x==0) IsPrime=false;
                       }
                       return IsPrime;
                 }else{
                        return false;
                  }
         }else{
             return true;
        }
}