LT2 Số lũy thừa 2
Input
|
Output
|
128
|
true
|
1000
|
false
|
Input: số tự nhiên n < 109.
Output: xuất “true” nếu n có dạng 2k, ngược lại xuất “false”
Gợi ý 1
Nhận xét: số lũy thừa 2 có tính chất khi chia
một số lần cho 2 sẽ bằng 1. Ví dụ:
8/2 = 4, 4/2 = 2, 2/2 = 1 nên 8 có dạng lũy thừa
2.
Gợi ý 2
Thuật toán: Chia số n cho 2 khi còn lớn hơn 1. Sau một số
lần chia, nếu số đó bằng 1 thì số đó có
dạng 2k.
Gợi ý 3:
while n>1 do
n:=n/2;
if n<1 then
writeln('false')
else
writeln('true');