题目
秦九昭算法
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define mod 1000000009
int a[1010001];
int b[1010001];
int ans;
int n,m;
inline int read()
{
int x = 0, flag = 1;
char c = getchar();
while(c < '0' || c > '9')
{
if(c == '-')
flag = -1;
c = getchar();
}
while(c >= '0' && c <= '9')
{
x = x*10+c-'0';
c = getchar();
x = x%mod;
}
return flag*x;
}
bool check(int x)
{
int res=0;
for(int i=n; ~i; i--)
{
res=((res+a[i])%mod*x%mod)%mod;
}
return !res;
}
signed main()
{
n=read();m=read();
for(int i=0; i<=n; i++)
{
a[i]=read();
a[i]%=mod;
}
for(int i=1; i<=m; i++)
{
if(check(i))
{
ans++;
b[ans]=i;
}
}
cout<<ans<<endl;
for(int i=1; i<=ans; i++)
cout<<b[i]<<endl;
return 0;
}