#P9420. [蓝桥杯 2023 国 B] 子 2023 / 双子数

[蓝桥杯 2023 国 B] 子 2023 / 双子数

题目描述

A 子 2023

小蓝在黑板上连续写下从 1120232023 之间所有的整数,得到了一个数字序列:

S=1234567891011121320222023S = 12345678910111213\cdots 20222023

小蓝想知道 SS 中有多少种子序列恰好等于 20232023

提示,以下是 33 种满足条件的子序列(用中括号标识出的数字是子序列包含的数字):

$$1[\textbf2]34567891[\textbf0]111[\textbf2]1[\textbf3]14151617181920212223 \cdots $$$$1[\textbf2]34567891[\textbf0]111[\textbf2]131415161718192021222[\textbf3] \cdots $$$$1[\textbf2]34567891[\textbf0]111213141516171819[\textbf2]021222[\textbf3] \cdots $$

注意以下是不满足条件的子序列,虽然包含了 22002233 四个数字,但是顺序不对:

$$1[\textbf2]345678910111[\textbf2]131415161718192[\textbf0]21222[\textbf3] \cdots $$

B 双子数

若一个正整数 xx 可以被表示为 p2×q2p^2 \times q^2,其中 ppqq 为质数且 pqp \neq q,则 xx 是 一个 “双子数”。请计算区间 [2333,23333333333333][2333, 23333333333333] 内有多少个 “双子数”?

输入格式

输入一个大写字母,表示第几个问题。

输出格式

根据所输入的问题编号,输出对应问题的答案。

提示

答题模板,可供参考。

#include<iostream>
using namespace std;
int main() {
    string ans [] = {
        "The answer of task A", // 双引号中替换为 A 题的答案
        "The answer of task B", // 双引号中替换为 B 题的答案
    };
    char T;
    cin >> T;
    cout << ans[T - 'A'] << endl;
    return 0;
}

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 A、B 题