Skip to content

Instantly share code, notes, and snippets.

@scDisorder
Last active September 22, 2019 17:44
Show Gist options
  • Save scDisorder/d5744ae1c64a40bb5c891caa866bbdc3 to your computer and use it in GitHub Desktop.
Save scDisorder/d5744ae1c64a40bb5c891caa866bbdc3 to your computer and use it in GitHub Desktop.

Задача №1

Необходимо реализовать функцию fun(n, p) .
Некоторые числа имеют занятные свойства. Например:
89 --> 8¹ + 9² = 89 * 1
695 --> 6² + 9³ + 5⁴= 1390 = 695 * 2
46288 --> 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51
Получая целое число n, записанное как abcd... (где a, b, c, d - отдельные цифры), и положительное целое число p, должно помочь найти число k, если оно существует, как сумма отдельно взятых цифр из n возведенных в степень p и равных k * n.
Например:
Если существует число k, удовлетворяющее условию (a ^ p + b ^ (p+1) + c ^(p+2) + d ^ (p+3) + ...) = n * k, ответом функции будет возврат значения k, если же нет - -1.

Примечание: n и p - всегда являются целыми положительными числами
fun(89, 1) должен вернуть 1, т.к. 8¹ + 9² = 89 = 89 * 1
fun(92, 1) должен вернуть -1, т.к. нет такого числа k как 9¹ + 2² равного 92 * k
fun(695, 2) должен вернуть 2, т.к. 6² + 9³ + 5⁴= 1390 = 695 * 2
fun(46288, 3) должен вернуть 51, т.к. 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51

Задача №2

Создайте функцию findDivisors(int), принимающую целое число аргументом вызова, которая вернет массив всех делителей этого числа (исключая еденицу и само число). Если число является простым, верните ответ %INT% is prime.

Вызов findDivisors(12) должен вернуть [2,3,4,6],
findDivisors(25) - вернёт [5],
а findDivisors(13) - 13 is prime

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment