În ajunul Crăciunului la marele mall din Acropole s-a organizat o tombolă la care au participat n
persoane. Acestea au extras pe rând câte un număr, iar câștigători au fost cei care au extras numerele magice. Un număr este magic dacă numărul său de divizori este minim.
Cerința
Câți câștigatori au existat?
Date de intrare
Fişierul de intrare magic3.in
conţine pe prima linie variabila n
cu indicația din enunț, iar pe a doua linie cele n numere naturale v[1],v[2],...,v[n]
, separate prin câte un spațiu, reprezentând numerele extrase la tombolă.
Date de ieșire
Fişierul de ieşire magic3.out
conţine o singură valoare care reprezintă numărul de câștigatori.
Restricții și precizări
1 ≤ n ≤ 1.000
0 < v[i] ≤ 1.000.000.000
- Numerele se pot repeta în această tombolă
Exemplu
magic3.in
8 12 5 10 7 32 2 4 99
magic3.out
3
Explicație
Numărul minim de divizori este 2. Și avem 3 numere care au doar 2 divizori.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema magic3:
/*
Implementare: Catalin Puricoi
*/
#include <fstream>
#define inf 1000000000
using namespace std;
ifstream f("magic3.in");
ofstream g("magic3.out");
int x,i,j,nr,n,min1,ok;
int main()
{
f>>n;
min1=inf;
for(i=1;i<=n;i++)
{
ok=0;
f>>x;
if(x==1) // cazul in care avem numarul 1 in sir(numarul divizori mereu va fi minim pt acest numar adica 1 div)
ok=1;
else
{
for(j=1;j*j<x;j++) //verific numarul de div. pana la radical pt 100 puncte, pana la jumatate pentru 80, pana la n pt 70
if(x%j==0)
ok=ok+2;
if(j*j==x) // cazul in care numarul este patrat perfect
ok++;
}
if(ok<min1) // daca gasesc un nou minim il retin
{
min1=ok;
nr=0;
}
if(min1==ok) // daca numarul de div este egal cu minim il numar
nr++;
}
g<<nr;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2345 magic3
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2345 magic3 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!