Дана последовательность Фибоначчи по простому модулю P (P <= 1000). F(0) = 0, F(1) = 1, F(i + 2) = (F(i) + F(i - C#
Формулировка задачи:
Дана последовательность Фибоначчи по простому модулю P (P <= 1000). F(0) = 0, F(1) = 1, F(i + 2) = (F(i) + F(i + 1)) % P. Нужно найти период этой последовательности или сказать, что его нет.
Решение задачи: «Дана последовательность Фибоначчи по простому модулю P (P <= 1000). F(0) = 0, F(1) = 1, F(i + 2) = (F(i) + F(i»
textual
Листинг программы
int M = 7;
var hs = new HashSet<Tuple<int, int>>();
for (var f = Tuple.Create(1, 1); hs.Add(f);
f = Tuple.Create(f.Item2, (f.Item1 + f.Item2) % M)) ;
Console.WriteLine($"Pi({M}) = {hs.Count}");
Console.ReadLine();