Yarı-yarı çarpanlarına ayırmak istiyoruz . Bu meydan okumanın amacı iki küçük Tamsayılardaki bulmaktır ve böyle böylece kolayca faktörlerini düşeriz izin trivially Fermat'ın yöntemiyle factorized edilebilir .u v u v N N
Görev
Yarı yarı ve pozitif bir tamsayı verildiğinde , ve şöyle tanımlarız :k x y
y=x2-kN
Adım # 1 - bulun
Önce ihtiyaç en küçük olası değeri bulmak için öyle ki bir olan kare sayı ( aka mükemmel kare).y
Bu, kN'yi Fermat'ın çarpanlara ayırma yönteminin tek bir yinelemesiyle çarpanlarına izin verir . Daha somut olarak, bu hemen aşağıdakilere yol açar:
(Güncelleme: bu sıra şimdi A316780 olarak yayınlandı )
Adım # 2 - Factorize
Daha sonra ve v olmak üzere iki pozitif tamsayıyı bulmalısınız :
c u = x + √
burada ve , başlıca faktörleridir .d N
özet
Göreviniz, girdi olarak alan ve ve çıktılarını herhangi bir sırada ve makul bir formatta basan bir program veya işlev yazmaktır .u v
Misal
En düşünelim
Aşama 1
Olabildiğince az değer olan veren:40
y=28232-40x199.163=7.969.329-7.966.520=2809=532k, N=(2823+53)x(2823-53)k, N=2876x2770
Adım 2
Doğru çarpanlara olan çünkü:k = 4 × 10
k N = ( 719 × 4 ) × ( 277 × 10 ) N = 719 × 277
Dolayısıyla, doğru cevap ya ya da .[ 10 , 4 ]
kurallar
- Yukarıda açıklanan iki adımı kesinlikle uygulamak gerekli değildir. Doğru ve değerlerini bulduğu sürece başka bir yöntem kullanmakta serbestsiniz .v
- tüm değerlerini, işaretsiz bir tamsayının yerel maksimum boyutuna kadar desteklemelisiniz .
- Girdinin bir yarıçap olması garanti edilir.
- Bu kod golf, bu yüzden bayttaki en kısa cevap kazanır.
- Standart boşluklar yasaktır.
Test senaryoları
N | k | Output
-----------+------+------------
143 | 1 | [ 1, 1 ]
2519 | 19 | [ 1, 19 ]
199163 | 40 | [ 4, 10 ]
660713 | 1 | [ 1, 1 ]
4690243 | 45 | [ 9, 5 ]
11755703 | 80 | [ 40, 2 ]
35021027 | 287 | [ 7, 41 ]
75450611 | 429 | [ 143, 3 ]
806373439 | 176 | [ 8, 22 ]
1355814601 | 561 | [ 17, 33 ]
3626291857 | 77 | [ 7, 11 ]
6149223463 | 255 | [ 17, 15 ]
6330897721 | 3256 | [ 74, 44 ]
Örnek uygulama
Aşağıdaki pasajı olarak, fonksiyonu alan bir ungolfed uygulamasıdır giriş ve dönerken ve .N u v
N
Girdinin gerçekte bir yarı periyot olacağı garanti ediliyor mu?