понимание списка haskell (задача теории чисел)

Я попытался решить следующую задачу в haskell:

Найдите наименьшее число b с помощью (a ^ б mod 100) = 1 для каждого a с gcd (a, 100) = 1

Я пробовал это:

head[ b | a <- [1..], b <- [1..], (a^b `mod` 100) == 1, gcd a 100 == 1]

, но это дает 1 ^ 1 в качестве первого решения, что неверно, оно должно быть для каждые ; Например, 3 ^ 1 не является решением. Я думаю, что правильным решением будет b = 20, но я хочу его в haskell.

5
задан onteria_ 23 May 2011 в 17:12
поделиться