T了2个
查看原帖
T了2个
933814
QBW1117楼主2024/1/23 11:37
#include<bits/stdc++.h>
#define f(i,a,b) for(int i = a ; i<=b ; i++)
#define MAXN 100005
#define MAXM 1000000
#define MAXP 105
#define P2 10007
#define P1 100000007
using namespace std;
string s;
int ans[MAXN];
long long a[2][MAXP];
bool g[MAXM];
int m,n,cnt;
int MOD(string s,int k){
	int ans = 0,len,sig = 1,i;
	len = s.size();
	i = 0;
	if(s[0] == '-') sig = -1,i = 1;
	else if(s[0] == '+') i++;
	for( ;i<len ; i++) ans = (ans*10+(s[i]-'0'))%k;
	return sig*ans;	
}
int qinjiushao_agm(long long a[],int n,int x,int p){
	long long v = 0;
	for(int i = n ; i>=0 ; i--) v = (v*x+a[i])%p;
	return v;
}
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
	memset(g,0,sizeof(g));
	cin>>n>>m;
	f(i,0,n){
		cin>>s;
		a[0][i] = MOD(s,P1);
		a[1][i] = MOD(s,P2);
	}
	f(x,1,m){
		if(!g[x]) if(qinjiushao_agm(a[1],n,x,P2)) for(int i = x+P2 ; i<=m ; i+=P2) g[x] = 1;
		else  if(!qinjiushao_agm(a[0],n,x,P1)) ans[++cnt]  = x;
	}
	cout<<cnt<<endl;
	f(i,1,cnt) cout<<ans[i]<<endl;
	return 0;


记录

2024/1/23 11:37
加载中...