fbpx

Problema #45 – VerifPrim – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie un program care citește de la tastatură un număr natural n și verifică dacă este prim.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran mesajul DA, dacă n este număr prim, respectiv NU în caz contrar.

Restricţii şi precizări

  • 0 ≤ n ≤ 1.000.000.000
  • un număr natural este prim dacă are exact doi divizori distincți: 1 și el însuși.

Exemplu

Intrare

17

Ieșire

DA
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int d = 2;
    int nrdiv = 1;
    while(n > 1){
        int p = 0;
        while(n % d == 0)
            n /= d, p++;
        nrdiv = nrdiv * (p + 1);
        d++;
        if(d * d > n)
            d = n;
    }
    if(nrdiv != 2)
        cout << "NU";
    else
        cout << "DA";
    return 0;
}
Comentarii

S-ar putea sa iti placa