Saturday, August 22, 2009

Euler Project 120

Let r be the remainder when (a−1)n + (a+1)n is divided by a2.

For example, if a = 7 and n = 3, then r = 42: 63 + 83 = 728 ≡ 42 mod 49. And as n varies, so too will r, but for a = 7 it turns out that rmax = 42.

For 3 ≤ a ≤ 1000, find ∑ rmax.

My Solution

(defun MaxReminder(a)
  (loop for i from 1 to (* 2 a) by 2
          maximize (rem (* 2 a i) (* a a))))

(defun Euler120(n)
  (loop for i from 3 to n
          sum (MaxReminder i)))


No comments:

Post a Comment