样例都过不了求助!
查看原帖
样例都过不了求助!
922691
Hisy楼主2023/8/29 19:22
#include<cstdio>
#include<cstring> 
int next[1000001],point;
void read(int &input){
	int minus=1;
	char got=getchar();
	input=0;
	while('9'<got||got<'0'){
		if(got=='-'){
			minus=-1;
		};
		got=getchar();
	};
	while('0'<=got&&got<='9'){
		input=input*10+got-'0';
		got=getchar();
	};
	input*=minus;
};
void write(int output){
	if(output<0){
		putchar('-');
		output=-output;
	};
	if(output>9){
		write(output/10);
	};
	putchar(output%10+'0');
};
bool check(int judge){
	while(judge){
		if(judge%7==0){
			return false;
		};
		judge/=10;
	};
	return true;
};
void init(void){
	for(int it=1;it<=10000000;++it){
		if(next[it]==-1){
			continue;
		};
		if(check(it)){
			for(int fex=1;it*fex<=10000000;++fex){
				if(next[fex]){
					continue;
				};
				next[fex*it]=-1;
			};
		}else{
			next[point]=it;
			point=it;
		};
	};
};
int main(int argc,char **argv){
	int maxn,temp;
	read(maxn);
	while(maxn--){
		read(temp);
		write(next[temp]);
		putchar('\n');
	};
	return 0;
};
2023/8/29 19:22
加载中...