大意:
看输入的这个数是否和 7 有关(7的倍数和含有7的倍数),若有关,则输出 -1,否则输出大于这个数且第一个和 7 无关的数。
思路:埃氏筛+判断本身
埃氏筛:找到一个未被记过的数,把它的倍数都登记一遍。
判断本身:把数字的每位都拆出来,判断是否含有 7。
做完这两个后就能保证正确性。因为本身含有 7 的都被筛掉了,它的倍数也就没了,根据题目大意所有不满足要求的数就都被筛完了!
代码:
#include<bits/stdc++.h>
using namespace std;
int t;
int b[1000000];
bool pd[10001000];
int maxx = INT_MIN;
int a[10001000];//预处理
bool find(int x){
//查询是否有数字7在里面
int aa = x;
while(aa !=