样例全过,答案全wa,说是Too short on line 2
查看原帖
样例全过,答案全wa,说是Too short on line 2
548813
单推刃下心楼主2022/11/7 17:50
#include<iostream>
#include<cstdio>
const int N=10000100;
using namespace std;
int t,v[N]={0},x;
int check(int x)
{
	while(x>0)
	{
		if(x%10==7)
		return 0;
		else
		x=x/10;
	}
	return 1;
}
void add(int x)
{
	for(int i=x;i<=N;i=i+x)
		v[i]=1;
}
int ss(int x)
{
	for(int i=x+1;i<=N;i++)
	{
		if(check(i)!=0)
		{
			if(v[i]!=1)
			return i;
		}
	}
}
int main()
{
//	freopen("P7960_1.in","r",stdin);
//	freopen("P7960.out","w",stdout);
	scanf("%d",&t);
	for(int i=7;i<=N;i=i+7)
    	v[i]=1;
    for(int i=7;i<=N;i++)
    {
    	if(check(i)==0)
    		add(i);
    }
	for(int i=1;i<=t;i++)
	{
		scanf("%d",&x);
		if(check(x)!=0)
		{
			if(v[x]!=1)
			printf("%d\n",ss(x));
			else
			printf("-1\n");
		}
		else	printf("-1\n");
	}
	return 0;
}
2022/11/7 17:50
加载中...