Я решаю эту задачу (проблема I). Утверждение:
Сколько подмножеств множества {1, 2, 3, ..., n}
взаимно просты? Набор целых чисел называется coprime, если каждый из двух его элементов взаимно прост. Два целых числа являются взаимно простыми, если их наибольший общий делитель равен 1.
Ввод
Первая строка ввода содержит два целых числа n
и m
(1 <= n <= 3000, 1 <= m <= 10^9 + 9
)
Выход
Вывести число взаимно простых подмножеств {1, 2, 3, ..., n}
по модулю m
.
Пример
вход: 4 7 выход: 5
Существует 12 взаимно простых подмножеств {1,2,3,4}
: {}
, {1}
, {2}
, {3}
, {4}
, {1,2}
, {1,3}
, {1,4}
, {2,3}
, {3,4}
, {1,2,3}
, {1,3,4}
.
Я думаю, что это можно решить, используя простые числа. (отслеживание, если бы мы использовали каждое число), но я не уверен.
Могу ли я получить некоторые подсказки для решения этой задачи?
- Вы можете найти эту последовательность здесь: http://oeis.org/A084422