比赛 暑假综合模拟2 评测结果 AAAAAWATTT
题目名称 解方程 最终得分 60
用户昵称 Sakura 运行时间 3.094 s
代码语言 C++ 内存使用 2.48 MiB
提交时间 2018-08-05 18:57:29
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
const int p=1000007;
bool t=true;
int n,m,cnt=0,num=0,sum;
int A[103],ans[1000003];
ll read()
{
    ll sum=0,fg=1;
    char c=getchar();
    while(c < '0' || c > '9')
    {
        if(c=='-') fg=-1; 
        c=getchar();
    }
    while(c >='0' && c <='9')
    {
        sum=((sum*10)+c-'0')%p;
        c=getchar();
    }
    return sum*fg;
}
void print(int x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>9)
    {
        print(x/10);
    }
    putchar(x%10+'0');
}
bool qjs(ll a){
	sum=0;
	for(int i=n;i>=1;i--){
		sum=((A[i]+sum)*a)%p;
	}
	sum=(sum+A[0])%p;
	return !sum;
}

int main()
{
	freopen("equationa.in","r",stdin);
	freopen("equationa.out","w",stdout);
    n=read();
    m=read();
    for(int i=0;i<=n;i++){
    	A[i]=read();
	}
	for(int i=1;i<=m;i++){
		if(qjs(i)){
			t=false;
			cnt++;
			ans[++num]=i;
		}
	}
	if(t){
		cout<<cnt<<endl;
		return 0;
	}
	print(cnt);
	printf("\n");
	for(ll i=1;i<=num;i++){
		print(ans[i]);
        printf("\n");
	}
	return 0;
}