70求调
查看原帖
70求调
1286053
Nostopathy楼主2024/11/19 21:24
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
    int x=0,F=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            F=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    return x*F;
}
void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
const int N=1E7+5;
int he[N], tot;
bool s7[N];
bool is7(int n)
{
	while(n)
	{
		if(n%10==7)
		{
			return 1;
		}
		n/=10;
	}
	return 0;
}
void shai(int n)
{	tot=0;
	for(register int i=1; i<=n; ++i)
	{
		if(is7(i)+s7[i]==0)
		{
			he[++tot]=i;
		}
		else
		{
			for(register int j=1; i*j<=n; ++j)
			{
				s7[i*j]=1;
			}
		}
	}
}
signed main(){
	//泥嚎,写题吧骚年
	shai(1e7);
	for(register int t=read(); t; --t)
	{
		int n=read();
		if(not s7[n])
		{
			int* a=lower_bound(he+1, he+tot+1, n)+1;
			write(*a);
		}
		else
		{
			write(-1);
		}
		putchar(10);
	}
	return 0;
}

2024/11/19 21:24
加载中...