Informatică, întrebare adresată de 0723, 9 ani în urmă

Cerința Definim un număr ca fiind fantastic dacă numărul de numere la care acesta se împarte exact este un număr prim.
Dându-se un șir cu n numere întregi strict pozitive, să se afișeze numărul de numere fantastice din șir.

Date de intrare
Fișierul de intrare fantastice.in conține pe prima linie numărul n de numere, iar pe cea de-a doua linie, separate prin câte un spaţiu, cele n numere.

Date de ieșire
Fișierul de ieșire fantastice.out va conține pe prima linie numărul de numere fantastice din șir.


Restricții și precizări
1 ≤ n ≤ 106 numerele de pe a doua linie a fișierului de intrare vor fi mai mici sau egale cu 106

Răspunsuri la întrebare

Răspuns de Vlad0Giusca
3
include <iostream>
using namespace std;
ifstream in(" fantastice.in")
ofstream out("fantastice.out")
bool prim(int n)
{
int i;
if(n==1)
return 0;
if(n<4)
return 1;
if(n%2==0 || n&3==0)
return 0;
i=5;
while(i*i<=n)
{
if(n%i==0 || n%(i+2)==0)
return 0;
i+=5;
}
return 1;
int nrdiv(int n)
{
int i,c=0;
//c este nr de divizori
for(i=1; i<=n; i++)
{
if(n%i==0;
c++;
}
return c;
}
}
int min()
{
int d,x,n,fan=0;
in>>n;
for(int i=1; i<=n; i++)
{
in>>x;
d=nrdiv(x);
if(prim(d))
fan++;
}
out<<fan

0723: SCz
0723: Din greseala
0723: e foarte bun
0723: e a facut inainte asa
Alte întrebări interesante