Verilen pozitif tamsayı n > 2
. Diziyi şu şekilde dönüştürürüz:
2
Boş bir dizi döndürmek için eşitse- Aksi halde
n
, yükselen sıralanan tüm asal çarpanların dizisini yaratın , daha sonra her eleman asal sayılar dizindeki dizini ile değiştirildi ve son olarak her elemanı diziye dönüştürdü.
Örneğin, sayıyı 46
diziye dönüştürelim . İlk olarak, onu ana faktörlerin dizisine dönüştürün:
[2, 23]
Numara 23
olduğunu 9
böylece yerine, inci asal 2
boş dizi ve 23
birlikte [9]
. Dizi şimdi olur:
[[], [9]]
Başbakan faktörler 9
şunlardır 3
ve 3
bu nedenle,:
[[], [3, 3]]
Her ikisi için de aynısını yapın 3
:
[[], [[2], [2]]]
Ve sonunda:
[[], [[[]], [[]]]]
Şimdi, onu kodlamak için, her açık braketi basitçe 1
ve her kapanış braketiyle değiştiriyoruz 0
, sonra tüm bitiş sıfırlarını çıkarıyoruz ve bir 1
ucundan düşüyoruz. Bu bizim ikili sayımız. Yukarıdaki örneği kullanarak:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
Şimdi sadece son üç sıfırı ve sonuncuyu bırakın 1
. Numara olur 10111001
ki 185
ondalık. Beklenen çıktı budur. Dizideki ana dizinin ikili dönüştürme dirseklerine dahil edilmediğine dikkat edin.
Giriş
Pozitif tamsayı n
daha büyük 2
.
Çıktı
Kodlanmış tam sayı n
.
Kurallar ve IO formatı
- Standart kurallar geçerlidir.
- Giriş, dize veya sayı olabilir (dize olması durumunda, 10 tabanında olması gerekir).
- Çıktı, dize veya sayı olabilir (dize olması durumunda, 10 tabanında olması gerekir).
- Bu kod-golf , bayt cinsinden en kısa cevap kazanır!
Test durumları
İstek üzerine daha fazla test durumu.
3 ---> 1
4 ---> 2
5 ---> 3
6 ---> 5
7 ---> 6
8 ---> 10
9 ---> 25
10 ---> 11
10000 ---> 179189987
10001 ---> 944359
10002 ---> 183722
10003 ---> 216499
10004 ---> 2863321
10005 ---> 27030299
10006 ---> 93754
10007 ---> 223005
10008 ---> 1402478
2
çünkü başvurularda bunu yapmanız gerekmemektedir.