4992:互质子集
文件提交:无需freopen
内存限制:512 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:1
解决:0
题目描述
# 互质子集
## 题目描述
在一次数学竞赛中,小 $A$ 需要从两个正整数 $A$ 和 $B$ 的**正公约数集合中**选择一些数构成子集,且要求子集中的数两两之间必须是**互质**的。
请编程求出找出满足条件的**互质子集**中最多有多少个整数?
这里给出上述描述中,相关数学概念的定义。
- **公约数:**正整数 $d$ 是整数 $x$ 和 $y$ 的公约数,意味着 $d$ 能同时整除 $x$ 和 $y$ 。比如: $12$ 和 $15$ 的正公约数有: $1, 3$ 。
- **互质:**两个整数 $x$ 和 $y$ 是互质的,意味着它们的最大公约数为 $1$ 。比如: $8$ 和 $25$ 满足互质的关系。
- **互质子集:**从 $A$ 和 $B$ 的正公约数集合中,选出若干个数,使得这若干个数两两之间互质。比如: $12$ 和 $18$ 的互质子集,可以选择: $1,2,3$ 三个整数。
## 输入格式
输入两个正整数 $A$ 和 $B$ 。
## 输出格式
输出一个整数,表示可以选择的互质子集中的最多有多少个整数。
## 样例
### 样例输入 1
```text
20 60
```
### 样例输出 1
```text
3
```
### 样例输入 2
```text
600 1200
```
### 样例输出 2
```text
4
```
### 样例输入 3
```text
37800000000 94500000000
```
### 样例输出 3
```text
5
```
## 说明/提示
样例 $1$ 说明
$20$ 和 $60$ 的公约数为 $1, 2, 4, 5, 10, 20$ 。在这些公约数中, $1, 2, 5$ 互质,所以最大可以选择的数量是 $3$ 。
数据范围
本题共有 $25$ 个测评数据。
有 $2$ 个测评数据,满足 $A, B$ 两数互质。
有 $4$ 个测评数据,满足 $1 \leq A,B \leq 3000$ 。
对于 $100\%$ 的数据,满足 $1 \leq A, B \leq 10^{12}$ 。
---
**题目来源:** 25年3月-B组(才俊)