fbpx

Problema #2913 – Proth – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Un număr natural n se numește număr Proth dacă este de forma n=k*2p+1, unde k și p sunt numere naturale, k este impar și k < 2p.

Să se scrie un program care citește un număr natural și verifică dacă este număr Proth.

Date de intrare

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

Date de ieșire

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

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000.000

Exemplu

Intrare

25

Ieșire

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

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

S-ar putea sa iti placa