4097 - 互质子集

题目描述

在一次数学竞赛中,小 A 需要从两个正整数 AB正公约数集合中选择一些数构成子集,且要求子集中的数两两之间必须是互质的。

请编程求出找出满足条件的互质子集中最多有多少个整数?

这里给出上述描述中,相关数学概念的定义。

  • 公约数:正整数 d 是整数 xy 的公约数,意味着 d 能同时整除 xy。比如:1215 的正公约数有:1, 3
  • 互质:两个整数 xy 是互质的,意味着它们的最大公约数为 1。比如:825 满足互质的关系。
  • 互质子集:AB 的正公约数集合中,选出若干个数,使得这若干个数两两之间互质。比如:1218 的互质子集,可以选择:1,2,3 三个整数。
输入

输入两个正整数 AB

输出

输出一个整数,表示可以选择的互质子集中的最多有多少个整数。

样例

输入

20 60

输出

3

输入

600 1200

输出

4

输入

37800000000 94500000000

输出

5
说明

样例 1 说明

2060 的公约数为 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}

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 入门


上一题 下一题