spamsink: (Default)
spamsink ([personal profile] spamsink) wrote2018-03-30 02:23 pm

Занимательная математика

Задача про поиск целого числа, которое (будучи записано в десятичной системе счисления, естественно) увеличивается вдвое, если его последнюю цифру перенести в начало, довольно известна.

А вот найдите все целые числа, которые от перенесения последней цифры в начало увеличиваются в какое-нибудь целое число раз.
vak: (Default)

[personal profile] vak 2018-03-31 07:16 am (UTC)(link)
Я когда-то соорудил скрипт на Scheme, который решает эту задачу.
$ cat problem-xn.scm
#! /usr/bin/env guile -q -s
!#

(define (solve n x)
  (define d (remainder x 10))
  (if (equal? x 1)
    1
    (+ d (* 10 (solve n (+ (quotient x 10) (* d n)))))))

(display "For 2: ") (display (solve 2 2)) (newline)
(display "For 3: ") (display (solve 3 3)) (newline)
(display "For 4: ") (display (solve 4 4)) (newline)
(display "For 5: ") (display (solve 5 5)) (newline)
(display "For 6: ") (display (solve 6 6)) (newline)
(display "For 7: ") (display (solve 7 7)) (newline)
(display "For 8: ") (display (solve 8 8)) (newline)
(display "For 9: ") (display (solve 9 9)) (newline)
$ ./problem-xn.scm
For 2: 105263157894736842
For 3: 1034482758620689655172413793
For 4: 102564
For 5: 102040816326530612244897959183673469387755
For 6: 1016949152542372881355932203389830508474576271186440677966
For 7: 1014492753623188405797
For 8: 1012658227848
For 9: 10112359550561797752808988764044943820224719