#include<cstdio>#include<cctype>#define int long long#define maxn 105#define mo 1000000007usingnamespace std;int n, m, a[maxn], ans[maxn];voidread(int&x){int opt =1;char ch =getchar();while(!isdigit(ch)){if(ch =='-') opt =-1; ch =getchar();}while(isdigit(ch)) x =(x *10+(ch &15))% mo, ch =getchar();
x *= opt;}signedmain(){read(n),read(m);for(int i =0; i <= n; i++){read(a[i]);}for(int i =1; i <= m; i++){int sum = a[n];for(int j = n -1; j >=0; j--)((sum *= i)+= a[j])%= mo;if(sum ==0) ans[++ans[0]]= i;}printf("%lld\n", ans[0]);for(int i =1; i <= ans[0]; i++)printf("%lld\n", ans[i]);return0;}
题意求 \(\ a_0+a_1x+a_2x2+\cdots+a_nxn=0\)在[1,m]区间的整数解题解用秦九昭公式,暴力即可调试记录为了防止爆long long,要模一个较大的质数#include &lt;cstdio&gt;#include &lt;cctype&gt;#define int long long#define maxn 105#define mo 1000...