(см. объяснение)
Объяснение:
Ниже показано решение на различных языках программирования + аналитический метод.
Java:
System.out.println(BigInteger.valueOf(2).pow(102).add(BigInteger.valueOf(2).pow(100)).add(BigInteger.valueOf(2).pow(85)).add(BigInteger.valueOf(2).pow(17)).toString(8));
Pascal:
##
var res: BigInteger := BigInteger.Add(BigInteger.Add(BigInteger.Add(BigInteger.Pow(BigInteger.Parse('2'),102),BigInteger.Pow(BigInteger.Parse('2'),100)),BigInteger.Pow(BigInteger.Parse('2'),85)),BigInteger.Pow(BigInteger.Parse('2'),17));
var s: string := '';
while(not res.IsZero) do
begin
s:= BigInteger.Remainder(res,8).ToString+s;
res:= BigInteger.Divide(res,BigInteger.Parse('8'));
end;
writeln(s);
Python:
a = 2**102+2**100+2**85+2**17
s = ''
while(a>0):
s=str(a%8)+s
a//=8
print(s)
Аналитический метод:
Нужно представить все, как <число>*8^[степень]. Заметим, что:
Результат полученный во всех случаях одинаковый:
12000020000000000000000000000400000
Это означает, что всего в числе встречается 4 различные цифры.
Задание выполнено!
# -*- coding: cp1251 -*-
def test_prg(num) :
cnt = 0
while (num > 0) :
sum_num = 0
for ch_num in str(num) :
sum_num = sum_num + int(ch_num, 10)
num = num - sum_num
cnt += 1
return cnt
def task(number) :
sf_print = "Заданное число = %d, ОТВЕТ: %d"
print (sf_print%(number, test_prg(number)))
def main() :
usr_number = 24
task(usr_number)
if __name__ == '__main__' :
main()
Для проверки сделаем следующее:
usr_number = 24;
24 - (2 + 4) = 18 | 1
18 - (1 + 8) = 9 | 2
9 - 9 = 0 | 3
ответ: Необхідно виконати 3 (три) дії.
*Писал на 2.7.10, но и на 3 Питоне должно заработать, удачи!
(см. объяснение)
Объяснение:
Ниже показано решение на различных языках программирования + аналитический метод.
Java:
System.out.println(BigInteger.valueOf(2).pow(102).add(BigInteger.valueOf(2).pow(100)).add(BigInteger.valueOf(2).pow(85)).add(BigInteger.valueOf(2).pow(17)).toString(8));
Pascal:
##
var res: BigInteger := BigInteger.Add(BigInteger.Add(BigInteger.Add(BigInteger.Pow(BigInteger.Parse('2'),102),BigInteger.Pow(BigInteger.Parse('2'),100)),BigInteger.Pow(BigInteger.Parse('2'),85)),BigInteger.Pow(BigInteger.Parse('2'),17));
var s: string := '';
while(not res.IsZero) do
begin
s:= BigInteger.Remainder(res,8).ToString+s;
res:= BigInteger.Divide(res,BigInteger.Parse('8'));
end;
writeln(s);
Python:
a = 2**102+2**100+2**85+2**17
s = ''
while(a>0):
s=str(a%8)+s
a//=8
print(s)
Аналитический метод:
Нужно представить все, как <число>*8^[степень]. Заметим, что:
Результат полученный во всех случаях одинаковый:
12000020000000000000000000000400000
Это означает, что всего в числе встречается 4 различные цифры.
Задание выполнено!
# -*- coding: cp1251 -*-
def test_prg(num) :
cnt = 0
while (num > 0) :
sum_num = 0
for ch_num in str(num) :
sum_num = sum_num + int(ch_num, 10)
num = num - sum_num
cnt += 1
return cnt
def task(number) :
sf_print = "Заданное число = %d, ОТВЕТ: %d"
print (sf_print%(number, test_prg(number)))
def main() :
usr_number = 24
task(usr_number)
if __name__ == '__main__' :
main()
Объяснение:
Для проверки сделаем следующее:
usr_number = 24;
24 - (2 + 4) = 18 | 1
18 - (1 + 8) = 9 | 2
9 - 9 = 0 | 3
ответ: Необхідно виконати 3 (три) дії.
*Писал на 2.7.10, но и на 3 Питоне должно заработать, удачи!