本地编译12秒,求助
查看原帖
本地编译12秒,求助
786241
Hong_Shika楼主2022/11/23 17:25
#include <bits/stdc++.h>
using namespace std;
long long t;
long long x[300000];
unsigned long long s[20000000]={0,0,0,0,0,0,0,1};

bool pd_1(int n)
{
	bool jl=0;
	int chu=1;
	int mod=10;
	while(n>0)
	{
		if(n%mod/chu==7)
			jl=1;
		n/=10;
	}
	if(jl==1)
		return true;
	return false;
}

void pd_2(int n)
{
	for(int i=n;i<=x[t]*2;)
	{
		i+=n;
		s[i]=1;
//		printf("[%d] ",i);
	}
}

int main()
{
	scanf("%lld",&t);
	for(int i=1;i<=t;i++)
		scanf("%lld",&x[i]);
	for(int i=7;i<=x[t]*2;i++)
	{
		if(pd_1(i))
		{
			s[i]=1;
//			printf("{%d} ",i);
			pd_2(i);
		}
	}
	for(int i=1;i<=t;i++)
	{
		if(s[x[i]]==1)
			printf("-1\n");
		else
		{
			for(int j=x[i]+1;1;j++)
			{
				if(s[j]==0)
				{
					printf("%d\n",j);
					break;
				}
			}
		}
	}
	return 0;
}
2022/11/23 17:25
加载中...