CCF GESP 2025年9月认证 C++ 5级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
数字选取
时间限制:1s 内存限制:512MB

题目描述

给定正整数 $n$,现在有 $1,2,\ldots,n$ 共计 $n$ 个整数。你需要从这 $n$ 个整数中选取一些整数,使得所选取的整数中任意两个不同的整数均互质(也就是说,这两个整数的最大公因数为 $1$)。请你最大化所选取整数的数量。

例如,当 $n=9$ 时,可以选择 $1,5,7,8,9$ 共计 $5$ 个整数。可以验证不存在数量更多的选取整数的方案。

输入格式

一行,一个正整数 $n$,表示给定的正整数。

输出格式

一行,一个正整数,表示所选取整数的最大数量。

样例说明

样例 1

输入:
6
输出:
4

样例 2

输入:
9
输出:
5

数据范围

对于 $40\%$ 的测试点,保证 $1\le n\le 1000$。

对于所有测试点,保证 $1\le n\le 10^5$。

第 2 题
有趣的数字和
时间限制:1s 内存限制:512MB

题目描述

如果一个正整数的二进制表示包含奇数个 $1$,那么小 A 就会认为这个正整数是有趣的

例如,$7$ 的二进制表示为 $(111)_2$,包含 $1$ 的个数为 $3$ 个,所以 $7$ 是有趣的。但是 $9=(1001)_2$ 包含 $2$ 个 $1$,所以 $9$ 不是有趣的。

给定正整数 $l,r$,请你统计满足 $l\le n\le r$ 的有趣的整数 $n$ 之和。

输入格式

一行,两个正整数 $l,r$,表示给定的正整数。

输出格式

一行,一个正整数,表示 $l,r$ 之间有趣的整数之和。

样例说明

样例 1

输入:
3 8
输出:
19

样例 2

输入:
65 36248
输出:
328505490

数据范围

对于 $40\%$ 的测试点,保证 $1\le l\le r\le 10^4$。
对于另外 $30\%$ 的测试点,保证 $l=1$ 并且 $r=2^k-1$,其中 $k$ 是大于 $1$ 的正整数。
对于所有测试点,保证 $1 \le l\le r\le 10^9$。

提示
由于本题的数据范围较大,整数类型请使用 long long

编程题部分已到底了。