为什么while里再加个0就爆了
查看原帖
为什么while里再加个0就爆了
141374
Thunderbelt楼主2021/11/22 22:27

RT

#include<cstdio>
#include<iostream>

using namespace std;

long long T,x,a;
bool awa[10000000],_;
void cl(long long q)
{
	long long m=0;
	long long q1=q;
	_=0;
	long long y=0;
	while(q1)
	{
		if(_==1) break;
		m=q1%10;
		if(m==7) 
		{
		    long long i=1;
			while(y<=1000000)
			{
				y=q*i;
				i++;
				awa[y]=1;
			}	
			_=1;
		}
		q1/=10;	
	}
}

int ans(int t)
{
	if(awa[t+1]==0) return t+1;
	else return ans(t+1);
}

int main()
{
//	freopen("number.in","r",stdin);
//	freopen("number.out","w",stdout);
	for(int i=1;i<=10000000;i++)
	{
		if(awa[i]==1) continue;
		cl(i);
	}
	scanf("%d",&T); 
	for(int q=0;q<T;q++)
	{
		scanf("%d",&a);
		if(awa[a]==1) printf("%d\n",-1);
		else 
		{
			printf("%d\n",ans(a));	
		}	
	}
	return 0;
}

2021/11/22 22:27
加载中...