Задача на подсчет переодически последовательностей

Нужно посчитать количество бесконечных в обе стороны двоичных последовательностей (из 0 и 1), периодических с данным периодом(не обязательно главным), при чем если последовательности получаются друг из друга циклическим сдвигом, не нужно их считать дважды (можно и формулой и кодом) Например если n = 2 ответ: 3 …01010101… …00000000… …11111111…


Ответы (1 шт):

Автор решения: Harry

Ну, например, так, если я верно понял задачу...

int a(int n)
{
    unsigned long long s = 0;
    for(int k = 1; k <= n; ++k)
        s += (1 << gcd(n,k));
    return s/n;
}
→ Ссылка