Two Divisors
数论拉满了
Teleport
- 题意:给你一个数a,求两个它的因数d1,d2,使得 g c d ( d 1 + d 2 , a ) = 1 gcd(d1+d2,a)=1 gcd(d1+d2,a)=1
- 思路:回顾一下这道题关于数论的一些基本知识
- g c d ( a , b ) = g c d ( a ± b , b ) gcd(a,b)=gcd(a\pm b,b) gcd(a,b)=gcd(a±b,b)
- i f ( g c d ( a , c ) = 1 ) , g c d ( a , b ) = g c d ( a , b ∗ c ) if(gcd(a,c)=1),gcd(a,b)=gcd(a,b*c) if(gcd(a,c)=1),gcd(a,b)=gcd(a,b∗c)
- 对于任意大于等于2的整数,有:
a = q 1 p 1 ∗ q 2 p 2 . . . . q n p n a=q_1^{p_1}*q_2^{p_2}....q_n^{p_n} a=q1p1∗q2p2....qnpn
q是质数///
- 简单证明:
a
,
b
互
质
下
,
g
c
d
(
a
+
b
,
a
∗
b
)
=
1
a,b互质下,gcd(a+b,a*b)=1
a,b互质下,gcd(a+b,a∗b)=1
∵ g c d ( a , b ) = 1 \because gcd(a,b)=1 ∵gcd(a,b)=1
∴ g c d ( a + b , b ) = 1 \therefore gcd(a+b,b)=1 ∴gcd(a+b,b)=1
∴ g c d ( a + b , b ∗ a ) = 1 \therefore gcd(a+b,b*a)=1 ∴gcd(a+b,b∗a)=1 - 那么构造一个d1,d2,使得它们相乘等于a
即可: d 1 = q 1 p 1 , d 2 = a d 1 d1=q_1^{p_1},d2=\frac {a}{d_1} d1=q1p1,d2=d1a
如果d1或者d2有一个为1,就输出俩-1 - 注意特判