Rezolvare completă PbInfo #2547 Divizori3

Cerința

Se citesc două numere naturale a și b (a < b) având cel mult 9 cifre fiecare. Afișați câte numere din intervalul [a, b] au exact 3 divizori.

Date de intrare

Programul citește de la tastatură numerele a și b, separate printr-un spațiu.

Date de ieșire

Programul va afișa pe ecran numărul de numere din intervalul [a,b] care au exact 3 divizori.

Restricții și precizări

  • 1 ≤ a < b < 1.000.000.000

Exemplu

Intrare

11 50

Ieșire

2

Explicație

Numerele din intervalul [11,50] care au exact 3 divizori sunt 25 și 49.

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 Divizori3:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n=0,a,b;
    cin>>a>>b;
    int x=sqrt(a),y=sqrt(b);
    if(sqrt(a)!=floor(sqrt(a))) x++;
    for(int i=x;i<=y;i++)
    {
        int p=1;
        if(i==0 || i==1) p=0;
        else if(i%2==0 && i>2) p=0;
             else for(int d=3;d*d<=i;d=d+2)
                        if(i%d==0) p=0;
        if(p) n++;
    }
    cout<<n;
    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 Adresa de email.

Rezolvarea problemei #2547 Divizori3

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2547 Divizori3 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!