1 子 2023
#define int long long
void solve() {
string s = "";
for (int i = 1;i <= 2023;i++) {
string ss = to_string(i);
s += ss;
}
int n = s.size();s = ' ' + s;
vector<int> pre2(n + 1), pre23(n + 10), suf3(n + 5);
for (int i = 1;i <= n;i++)pre2[i] = pre2[i - 1] + (s[i] == '2');
for (int i = n;i >= 1;i--)suf3[i] = suf3[i + 1] + (s[i] == '3');
for (int i = n - 1;i >= 1;i--) {
for (int j = i + 1;j <= n;j++) {
if (s[i] == '2') {
pre23[i] = pre23[i + 1] + suf3[i + 1];
} else {
pre23[i] = pre23[i + 1];
}
}
}
int cnt = 0;
for (int i = 1;i <= n;i++) {
if (s[i] == '0') {
cnt += pre2[i] * pre23[i];
}
}
cout << cnt << '\n';
}
2 双子数
void solve() {
sieve(3e6);
set<int>s;
for (auto x : primes) {
for (auto y : primes) {
if (x != y) {
int z = x * x + y * y;
if (z >= 2333 && z <= 23333333333333)s.insert(z);
}
}
}
cout << s.size();
}