Всем доброго дня! Наткнулся вот на такую задачу:
Коэффициентами многочлена Pn являются цифры числа n, т.е.
Хочу понять сколько таких n есть, которые не больше наперед заданного числа и у которых Pn имеет хотя бы один целый корень.
Для начала хочу научиться понимать, если ли у конкретного полинома, построенного по n корень. Дальше перебор и дело в шляпе.
В том случае, если n заканчивается на 0, то сразу помечаем многочлен как имеющий целый корень (в данном случае нулевой). Если нет, то смотрю на отрицательные делители (положительные не подойдут, т.к. коэффициенты многочлена положительные) свободного члена и просто подставляю в многочлен.
При n от 1 до 100000 получается как в тестовом примере - 14696 полиномов с целыми корнями.
Теперь стоит задача узнать, сколько будет таких полиномов для n до
Проблема в том, что это может занимать слишком много времени, даже при многопоточном коде.
Решил посмотреть на распределение количества корней с периодом в 1000. Т.е. смотрю сколько корней было для n от 1 до 1000, от 1001 до 2000 и так до 500000. Наблюдается несколько периодичная структура -
http://prntscr.com/6fe5ox Вот результат для периода 10000 -
http://prntscr.com/6fe6b8Как думаете, можно ли из этого как-то оценить сколько корней для n ограниченного 10 с 16-ю нулями?