While 5. Дано целое число N (> 0), являющееся некоторой степенью числа 2: \(N = 2^K\). Найти целое число K — показатель этой степени.

Решение на Python 3

import random

K = random.randrange(1,30)
N = 2 ** K

print('K = ', K)
print('N = ', N)

K_new = 0
while N >= 2:
N /= 2
K_new += 1
print("K = ", K_new)

Решение на C++

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

int main() {
srand((int)time(0));
int K = rand() % 20 + 1;
long N = pow(2,K);
//N = 81;
cout << "K = " << K << endl;
cout << "N = 2^" << K << " = ";
cout << N << endl;

int K2 = 0;
double N2 = N * 1.0;
while(N2 >= 2) {
N2 /= 2;
K2 += 1;
}

cout << "Again K = " << K2 << endl;

return 0;
}