求助!编译不过啊!!
查看原帖
求助!编译不过啊!!
244371
xi20080718楼主2021/11/20 19:58

我的代码在dev-c++上可以,但洛谷上不行 只显示“编译失败”,没有为什么 求助!!!

```cpp

#include<bits/stdc++.h> using namespace std; int qp[10000000]={0,7,17,27,37,47,57,67,70,71,72,73,74,75,76,77,78,79,87,97}; int n,sum=19; int g[200010]; int sw[20]; bool flag1,flag2; bool pd(int i) { flag1=0; int s=i,m=0; while(s!=0) { sw[++m]=s%10; s/=10; if(sw[m]==7) { flag1=1; break; } } if(flag1==1) { //cout<<-1<<endl; flag2=1; return false; } for(int j=1;j<=i/2;j++) { if(j>=sum) break; if(i%qp[j]==0) { flag1=1; break; } } if(flag1==1) { flag2=0; //cout<<-1<<endl; return false; } return true; } int main() { //freopen("number.in","r",stdin); //freopen("number.out","w",stdout); for(int i=1;i<7;i++) { for(int j=1;j<20;j++) { qp[++sum]=i100+qp[j]; } } for(int i=700;i<800;i++) { qp[++sum]=i; } for(int i=8;i<10;i++) { for(int j=1;j<20;j++) { qp[++sum]=i100+qp[j]; } }

for(int i=1;i<7;i++)
{
	for(int j=1;j<272;j++)
	{
		qp[++sum]=i*1000+qp[j];
	}
}
for(int i=7000;i<8000;i++)
{
	qp[++sum]=i;
}
for(int i=8;i<10;i++)
{
	for(int j=1;j<272;j++)
	{
		qp[++sum]=i*1000+qp[j];
	}
}
for(int i=1;i<7;i++)
{
	for(int j=1;j<3440;j++)
	{
		qp[++sum]=i*10000+qp[j];
	}
}
for(int i=70000;i<80000;i++)
{
	qp[++sum]=i;
}
for(int i=8;i<10;i++)
{
	for(int j=1;j<3440;j++)
	{
		qp[++sum]=i*10000+qp[j];
	}
}//cout<<sum<<endl;
for(int i=1;i<7;i++)
{
	for(int j=1;j<40952;j++)
	{
		qp[++sum]=i*100000+qp[j];
	}
}
for(int i=700000;i<800000;i++)
{
	qp[++sum]=i;
}
for(int i=8;i<10;i++)
{
	for(int j=1;j<40952;j++)
	{
		qp[++sum]=i*100000+qp[j];
	}
}

for(int i=1;i<7;i++)
{
	for(int j=1;j<468560;j++)
	{
		qp[++sum]=i*1000000+qp[j];
	}
}

/*
for(int i=1;i<=sum;i++)
{
	cout<<qp[i]<<endl;
}*/
cin>>n;
for(int i=1;i<=n;i++)
{
	scanf("%d",&g[i]);
	if(g[i]<6)
	{
		printf("%d\n",g[i]+1);
		continue;
	}
	if(g[i]==6)
	{
		printf("8\n");
		 continue;
		}
		//cout<<"YES"<<endl;
	if(!pd(g[i])) 
	{printf("-1\n"); continue;}
	//cout<<"YES"<<endl;
	int s=g[i]+1,m=0;
	while(s!=0)
	{
		sw[++m]=s%10;
		s/=10;
	}
	//cout<<"YES"<<endl;
	if(pd(g[i]+1))
	{
		printf("%d\n",g[i]+1);
		continue;
	}
	//cout<<"YES"<<endl;
	int ans=0;
	for(int j=m;j>=1;j--)
	{
		if(sw[j]!=7)
		{
			ans+=sw[j]*pow(10,j-1);
		}
		else
		{
			ans+=8*pow(10,j-1);
			break;
		}
	}
	g[i]=ans;
	//cout<<"YES"<<endl;
	//cout<<g[i]<<endl;
	while(true)
	{
		//cout<<"YES"<<endl;
		if(pd(g[i]))
		{
			printf("%d\n",g[i]);
			break;
		}
		g[i]++;
	}
}

return 0; }

2021/11/20 19:58
加载中...