iİnformatikanın məktəbdə tədrisi

2-14r

Дано натуральное число N.  Проверить, является ли оно степенью числа 2.


Если число является степенью числа 2, то разделив это число и все получаемые частные на 2, в конце концов получим число 1. Алгоритм так и работает: делим число n на 2, пока делится ( строки 6,7. Если в конце осталась 1, то исходное число – степень 2, если не 1, то не степень 2.

1

2

3

4

5

6

7

8

9

10

11

12

 

Program A2_14;

Var

  n:integer;

 begin

   readln(n);

   while(n mod 2 = 0)  do

     n:= n div 2;

   if (n=1) then writeln('YES')

            else writeln('NO');

   readln;

 end.

// Program A2.14;

#include <iostream>

 

using namespace std;

 

int main()

{

    int n;

    cin>>n;

    while(n%2==0) n=n/2;

    if(n==1)cout<<"YES\n";

    else cout<<"NO\n";

    return 0;

}