👤

Se citesc două numere naturale a și b (a mai mic decât b) având cel mult 9 cifre fiecare. Afișați câte numere din intervalul [a,b] au exact 3 divizori.
Exemplu:
În intervalul [11,50] numerele care au exact 3 divizori sunt 25 și 49, deci se va afișa 2.
PASCAL


Răspuns :

Răspuns:

#include <iostream>

#include <math.h>

using namespace std;

bool prim(int x)

{

int d;

if(x<2)

return false;

if(x==2)

return true;

for(d=2;d<=x/2;d++)

if(x%d==0)

return false;

return true;

}

int main()

{

int a,b;

cin>>a>>b;

for(int i=a;i<=b;i++)

{

int k=sqrt(i);

if(k*k==i)

if(prim(k)==true)

cout<<i<<" ";

}

return 0;

}

Explicație: