Asal sayılar her zaman insanları büyülemiştir. 2300 yıl önce Öklid "Elemanları" na yazdı
Asal sayı, sadece bir birim tarafından ölçülen sayıdır.
yani bir asal sadece 1
(veya kendi başına) bölünebilir .
İnsanlar her zaman asal sayılar arasındaki ilişkileri aradılar ve bazı ilginç ("ilginç" gibi) şeyler buldular.
Örneğin bir Sophie Germain asal bir asal p
olan 2*p+1
da asal olduğunu.
Bir kasa asal bir asal p
olan (p-1)/2
tam bir Sophie Germain başbakan geriye durumdur ki, Başbakan da.
Bunlar bu meydan okumada aradığımız şeyle ilgilidir.
Birinci tip bir Cunningham zinciri , sonuncusu hariç her elementin Sophie Germain prime ve ilk hariç her elementin güvenli bir başlangıç olduğu bir dizi asal dizidir . Bu zincirdeki eleman sayısına uzunluk denir .
Bu, bir asal ile başlayıp p
hesapladığımız anlamına gelir q=2*p+1
. Eğer q
asal ise , uzunluk 2 tip I bir Cunnigham zincirimiz var . Sonra bir 2*q+1
sonraki üretilen sayı kompozit olana kadar test ederiz .
Tip II Cunningham zincirleri hemen hemen aynı prensibe göre inşa edilir, tek fark 2*p-1
her aşamada kontrol etmemizdir.
Cunningham zincirlerinin uzunluğu 1 olabilir , yani ne 2 * p + 1 ne de 2 * p-1 asal değildir. Bunlarla ilgilenmiyoruz .
Cunningham zincirlerinden bazı örnekler
2
uzunluk 5 tip I zincirini başlatır .
2, 5, 11, 23, 47
Bir sonraki inşa edilen sayı 95
asal olmayan sayıdır .
Bu aynı zamanda o, söyler 5
, 11
, 23
ve 47
tip herhangi bir zinciri başlamaz I o -Önceki unsurları olurdu, çünkü.
2
ayrıca uzunluk 3 tip II bir zincir başlatır .
2, 3, 5
Sırada 9
, asal olmayan olurdu .
11
Tip II'yi deneyelim ( daha önce tip I'den hariç tuttuk).
Peki, bir 21
sonraki olurdu, bu asal değil, bu yüzden bu meydan okumada saymadığımız "zincir" için 1 uzunluğa sahip olurduk.
Meydan okuma
n
Giriş olarak bir sayı verildiğinde , en az 2 uzunluğunda tip I veya II tip n. Cunningham zincirinin başlangıç numarasını yazıp / döndüren , ardından bir boşluk ve ardından başladığı zincir türünü ( I veya II ), ardından bir kolon ve bunu takiben bu tip zincirin uzunluğu gelir. Bir asal her iki zincir türünü (tip I ve tip II) başlatırsa , önce tip I zinciri sayılır.Misal:
2 I:5
Unutmayın, bu n
daha önce başlatılmış herhangi bir tür zincirinin bir parçası olabilir, bu durumda bu tür bir zincirin başlangıç sayısı olarak düşünülmemelidir .
Bunun nasıl başladığına bakalım
İle başlıyoruz 2
. Hiç de ilk başbakan olduğundan daha düşük bir başbakanla başlayan hiçbir zincir olmadığından emin olabiliriz 2
.
Bir zincir türünde bir sonraki sayı olurdu 2*2+1 == 5
. 5
asal, bu yüzden zaten en az 2 uzunluğunda bir zincirimiz var.
Bunu ilk zincir olarak sayıyoruz. Tip II ne olacak? Sonraki sayı olurdu 2*2-1 == 3
. 3
asal olduğundan, tip II için de en az 2 uzunluğunda bir zincir.
Bunu ikinci zincir olarak sayıyoruz. Ve işimiz bitti 2
.
Bir sonraki asal 3
. Burada, daha düşük bir başlangıcın başladığı bir zincirde olup olmadığını kontrol etmeliyiz.
Tip I: 'yi kontrol edin (3-1)/2 == 1
. 1
asal değil, bu nedenle 3, I tipi bir zincir için bir başlangıç noktası olabilir
. Sonraki olurdu 3*2+1 == 7
. 7
asal olduğu için, en az 2 numaralı tip I zincirine sahibiz. Bunu üçüncü zincir olarak sayıyoruz.
Şimdi 3
, tip II zincirinde daha düşük bir başlangıcın başlayıp başlamadığını kontrol ediyoruz .
(3+1)/2 == 2
. 2
asal olduğundan, 3 tip II zincir için bir başlangıç numarası olarak kabul edilemez . Yani bu sayılmaz, 3
bu zincirde bir sonraki sayı olsa bile ,5
, asal. (Elbette bunu zaten biliyorduk ve elbette bu kontrollerin nasıl yapılacağını kendi yönteminizi düşünebilir ve düşünmelisiniz.)
Ve için kontrol nedenle 5
, 7
, 11
biz, en azından uzunluğunun 2 ninci Cunningham zinciri bulana kadar ve bu sayım ile.
O zaman (veya belki bir süre önce ;)
) bulduğumuz zincirin tam uzunluğunu belirlememiz ve sonucu daha önce belirtilen formatta yazdırmamız gerekir.
Bu arada: testlerimde 2
, her iki tip zinciri de daha büyük bir şekilde başlatan bir şey bulamadım 1
.
Giriş / Çıkış örnekleri
Giriş
1
Çıktı
2 I:5
Giriş
10
Çıktı
79 II:3
Giriş
99
Çıktı
2129 I:2
Girişler için çıkışlar 1..20
2 I: 5 II: 3 3 I: 2 7 II: 2 19 II: 3 29 I: 2 31 II: 2 41 I: 3 53 I: 2 79 II: 3 89 I: 6 97 II: 2 113 I: 2 131 I: 2 139 II: 2 173 I: 2 191 I: 2 199 II: 2 211 II: 2 229 II: 2
İlk 5000 çıktının bir listesini burada bulabilirsiniz .
Bu kod golf. Çıktıda keyfi boşluklara izin verilir, ancak tür ve sayılar örneklerde görüldüğü gibi tek bir boşluk ve iki nokta ile ayrılmalıdır. Herhangi boşlukları kullanarak özellikle Web'den sonuçları edilir alma izin verilmez değil izin verdi.
İyi şanslar :)
:)
2
ve3
sadece Asal sayılarp
her ikisi için2p-1
ve2p+1
asal, bu yüzden2
hangi yalnızca asal başlar iki tür önemsiz olmayan Cunningham zincirlerini.