ACM-ICPC 2018 沈阳赛区网络预赛
过题 大于200
K. Supreme Number
题目求不大于 n 的最大的 s,s 是一个数,所有的子序列都是素数。
只能由 1 2 3 5 7构成,直接打表,注意打表时候细心一点。。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 1e2 + 10;
int a[] = {1, 2, 3, 5, 7, 11, 13, 17, 23, 31, 37, 53, 71, 73, 113, 131, 137, 173, 311, 317};
int main(){
int t;
scanf("%d", &t);
char str[1000];
int cas = 1;
while(t--){
scanf("%s", str);
if(strlen(str) >= 4){
printf("Case #%d: %d\n", cas++, 317);
continue;
}else{
int num = 0;
for(int i = 0; i < strlen(str); i++){
num = num * 10 + str[i] - '0';
}
int ans = 1;
for(int i = 0; i < 20; i++){
if(a[i] > num)
break;
ans = a[i];
}
printf("Case #%d: %d\n", cas++, ans);
}
}
return 0;
}