BOJ-3671産業スパイの手紙
9536 ワード
必要な知識
に近づく
SET
に入れる.コード(C+)
#include <bits/stdc++.h>
#define FIO ios_base::sync_with_stdio(false), cin.tie(),cout.tie();
using namespace std;
int t;
bool sosu[10000000], chk[8];
string s;
set<int> se;
void init() {
sosu[0] = sosu[1] = true;
for (int i = 2; i * i <= 10000000; i++) {
if (sosu[i]) continue;
for (int j = i + i; j <= 10000000; j += i) {
sosu[j] = true;
}
}
}
void go(int idx,int res) {
if (idx == s.length()) return;
for (int i = 0; i < s.length(); i++) {
if (chk[i]) continue;
chk[i] = true;
if (!sosu[res*10+s[i]-'0'])se.insert(res*10+s[i]-'0');
go(idx + 1,res*10+s[i]-'0');
chk[i] = false;
}
return;
}
int main() {
FIO;
init();
cin >> t;
while (t--) {
memset(chk, 0, sizeof(chk));
cin >> s;
go(0,0);
cout << se.size() << "\n";
se.clear();
}
return 0;
}
結果
Reference
この問題について(BOJ-3671産業スパイの手紙), 我々は、より多くの情報をここで見つけました https://velog.io/@hschoi1104/BOJ-3671-산업-스파이의-편지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol