社区讨论
70pts,#8,9,10TLE求助
P7960[NOIP2021] 报数参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lo3wguyv
- 此快照首次捕获于
- 2023/10/24 13:42 2 年前
- 此快照最后确认于
- 2023/11/02 11:36 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
const int X = 1e7 + 10;
int t, x;
bool num[X];
bool check(int x) {
if (num[x] == 1)
return 1;
while (x > 0) {
if (x % 10 == 7)
return 1;
else
x /= 10;
}
return 0;
}
int main() {
int site = 7;
num[site] = 1;
for (int i = 1; i * site <= X; i++)
if (num[i * site] == 0)
num[i * site] = 1;
while (site <= X) {
if (!num[site] && check(site) )
for (int i = 1; i * site <= X; i++)
if (num[i * site] == 0)
num[i * site] = 1;
site++;
}
scanf("%d", &t);
for (int i = 1; i <= t; i++) {
scanf("%d", &x);
if (check(x) == 1)
printf("-1\n");
else {
int z = x + 1;
while (num[z] == 1)
z++;
printf("%d\n", z);
}
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...