#166. 所有公因数

所有公因数

【题目描述】

小灰灰最近在学习最大公因数(GCD),他了解到如下信息:

  • 能够整除 xx 的正整数都被称为 xx因数,比如当 x=12x = 121,2,3,4,6,121, 2, 3, 4, 6, 12 都可以整除 xx,所以它们都是 xx 的因数;
  • 两个数 xxyy公因数指的是既为 xx 的因数同时又为 yy 因数的数,比如当 x=12, y=18x = 12,\ y = 181,2,3,61, 2, 3, 6 既能整除 xx 又可以整除 yy,所以它们都是 xxyy 的公因数;
  • xxyy最大公因数指的是它们所有的公因数之中最大的那个公因数,比如当 x=12, y=18x = 12, \ y = 18 时,它们的最大公因数就是 66

小灰灰宣称他已经学会了怎么求解两个正整数的最大公因数,小蓝打算考一考他。

具体的,小蓝会给小灰灰两个正整数 xxyy,小灰灰需要从小到大的输出这两个数的所有公因数。

作为他们俩的好朋友,请你编写一个程序,读入 xxyy 然后从小到大输出这两个数的所有公因数,中间用空格分隔开。


【输入描述】

输入一行两个空格分隔的正整数 xxyy

保证:

  • 1x,y10121\le x, y \le 10^{12}

【输出描述】

输出一行若干个空格分隔的正整数表示答案。


【样例 1】(满足测试点 1 ~ 5 的特殊性质)

【样例 1 输入】

12 18

【样例 1 输出】

1 2 3 6

【样例 1 解释】

12 的因数:1, 2, 3, 4, 6, 12

18 的因数:1, 2, 3, 6, 9, 18

12 和 18 的公因数(从小到大):1, 2, 3, 6


【样例 2】(满足测试点 16 ~ 20 的特殊性质)

【样例 2 输入】

7 13

【样例 2 输出】

1

【样例 3】(满足测试点 6 ~ 15 的特殊性质)

【样例 3 输入】

36 1000000008

【样例 3 输出】

1 2 3 4 6 9 12 18 36

【样例 4】(满足测试点 21 ~ 30 的特殊性质)

【样例 4 输入】

999999999984 999999999888

【样例 4 输出】

1 2 3 4 6 8 12 16 24 48

【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 5 30. x106x\le 10^6y106y\le 10^6
6 ~ 15 30 x106x \le 10^6y106y\le 10^6
16 ~ 20 15 xxyy 是质数(只能被 1 和其本身整除的数称为质数)
21 ~ 30 25