Cerinţa(fara vectori ms)
Să se scrie un program care citeşte de la tastatură un număr natural n şi apoi un şir de n numere naturale şi determină cel mai mare număr prim din șir și de câte ori apare.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire
Programul afișează pe ecran numerele M nrap, separate printr-un spațiu, reprezentând cel mai mare număr prim din șir și de câte ori apare acest număr în șir.
Restricţii şi precizări
0 < n < 1000
cele n numere citite vor fi mai mici decât 2.000.000.000
pentru toate testele de evaluare, datele de intrare vor conține cel puțin un număr prim
JolieJulie:
Pot sa fac cu functii ?
using namespace std;
int n,i,k,x,j,maxim,m,p;
int main() {
cin>>n;
for(i=1;i<=n;i++){
k=0;
cin>>x;
for(j=1;j<=x/j;j++){
if(x%j==0)
k++;
if(k==1){
if(maxim maxim=x;
m++;
}
else{
if(maxim==x)
m++;
else
m=0;
}
}
}
}
cout<}
Răspunsuri la întrebare
Răspuns de
1
Problema e simpla.
Iei ca variabile de tip întreg n, x, max=-1, c =0, p=1
Și o variabila bool prim = false;
Faci o singura parcurgere ceva de genul :
for (int i = 0; i < n; i++)
Și in for citești un x
Verifici dacă e prim cu secventele astea (sunt pe telefon asa ca nu ți le scriu în c++)
prim = true;
If (x < 2)
Prim = false;
Parcurgem posibili divizori
For (int d = 2 ; d <= sqrt(x) & &prim;d++)
If (x%d==0)
Prim = false;
Și acum faci maximum cu grija. (tot în primul for e și asta)
If (prim)
If (max == x)
p++;
Else if (max < x)
{ max =x; p = 1;}
Aici se termina for.
Și afișezi max și p.
Succes!
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă