Formül
Örneğin, 300 sayısını ele alalım
- 300'ün asal faktörleri (300 ve asal faktör olan
[2, 3, 5]
benzersiz sayılar) - Bu sayıların her birinin karesini almak size
[4, 9, 25]
- Bu listeyi toplamak size
4 + 9 + 25 = 38
- Son olarak, bu toplamı (38) orijinal numaranızdan çıkarın
300-38 = 262
(sonuç budur)
Giriş
Girişiniz 2'den büyük bir pozitif tamsayı olacaktır. 2'den giriş değerine (dahil) tüm sayıları kontrol etmeli ve yukarıdaki formülle en iyi sonucu veren sayıyı bulmalısınız.
Çıktı
Çıktınız bir boşlukla ayrılmış iki sayı, virgül, yeni satır veya dilinizin izin verdiği her şey olacaktır (iki sayıyı ayırt etmek için ayırma gereklidir). Bunlar bir dosyaya, stdout'a veya dilinizin kullandığı her şeye çıkarılabilir. Amacınız, yukarıdaki formülle çalışırken maksimum çıktıyı üreten aralıktaki sayıyı bulmaktır. Görüntülenen ilk sayı başlangıç numarası (300 gibi) ve ikinci sayı, formülün ürettiği çıktı (262 gibi) olmalıdır
Test Durumları
Input: 3 Output: 2, -2
Input: 10 Output: 8, 4
Input: 50 Output: 48, 35
Input: 1000 Output: 1000, 971
Input: 9999 Output: 9984, 9802
Örnek Çalışma
10'un girişini düşünün, 2-10 (dahil) tüm sayılar için formülü çalıştırmalıyız
Num PrimeFacs PrimeFacs^2 SumPrimeFacs^2 Result
2 [2] [4] 4 -2
3 [3] [9] 9 -6
4 [2] [4] 4 0
5 [5] [25] 25 -20
6 [2, 3] [4, 9] 13 -7
7 [7] [49] 49 -42
8 [2] [4] 4 4
9 [3] [9] 9 0
10 [2, 5] [4, 25] 29 -19
Gördüğünüz gibi en büyük sonuç, 4
değerin 8
formüle girilmesinin bir sonucudur . Bu, bir giriş için çıkış anlamına gelir 10
olmalıdır8, 4
Puanlama ve Kurallar
Girişler ve çıkışlar için varsayılan kurallar geçerlidir: Code Golf için varsayılan: Giriş / Çıkış yöntemleri
Standart boşluklar yasaktır: Varsayılan
Gönderimler tarafından yasaklanan delikler işlevler veya tam programlar olabilir
Bayt cinsinden en kısa kod kazanır
50
: 35, 48
?