Un număr natural se numește aproape prim dacă poate fi scris ca produs de două numere naturale prime distincte.
Cerinţa
Se citește un număr natural și apoi n numere naturale. Să se determine câte dintre ele sunt aproape prime
Pe pbinfo imi da 0 puncte pe rezolvarea asta si nu stiu unde am gresit
#include
using namespace std;
int n,i,d,x,k=2,C=0;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
for(d=2;d<=x/2;d++)
{
if(x%d==0)
k++;
}
if(k==2)
C++;
}
cout<
return 0;
}
boiustef:
se vede ca codul postat nu e complet... si tr sa verifici daca num introdus x este un produs a 2 num prime, deci el nu e prim dar il controlezi la primalitate
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
bool prim(int m)
{
if (m==0 || m==1) return false;
if (m==2) return true;
if (m>2)
{
if (m%2==0) return false;
else
{
for (int i=3; i*i<=m; ++i)
if (m%i==0) return false;
}
return true;
}
}
bool apr_prim(int m)
{
for (int i=2; i*i<m; ++i)
{
if (m%i==0)
{
if (prim(i) && prim(m/i)) return true;
}
}
return false;
}
int main()
{
int n, num, i, c=0;
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> num;
if (apr_prim(num)) ++c;
}
cout << c;
return 0;
}
Alte întrebări interesante
Evaluare Națională: Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Matematică,
9 ani în urmă