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 polan 2*p+1da asal olduğunu.
Bir kasa asal bir asal polan (p-1)/2tam 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 phesapladığımız anlamına gelir q=2*p+1. Eğer qasal ise , uzunluk 2 tip I bir Cunnigham zincirimiz var . Sonra bir 2*q+1sonraki üretilen sayı kompozit olana kadar test ederiz .
Tip II Cunningham zincirleri hemen hemen aynı prensibe göre inşa edilir, tek fark 2*p-1her 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
2uzunluk 5 tip I zincirini başlatır .
2, 5, 11, 23, 47
Bir sonraki inşa edilen sayı 95asal olmayan sayıdır .
Bu aynı zamanda o, söyler 5, 11, 23ve 47tip herhangi bir zinciri başlamaz I o -Önceki unsurları olurdu, çünkü.
2ayrıca uzunluk 3 tip II bir zincir başlatır .
2, 3, 5
Sırada 9, asal olmayan olurdu .
11Tip II'yi deneyelim ( daha önce tip I'den hariç tuttuk).
Peki, bir 21sonraki olurdu, bu asal değil, bu yüzden bu meydan okumada saymadığımız "zincir" için 1 uzunluğa sahip olurduk.
Meydan okuma
nGiriş 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 ndaha ö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. 5asal, 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. 3asal 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. 1asal değil, bu nedenle 3, I tipi bir zincir için bir başlangıç noktası olabilir
. Sonraki olurdu 3*2+1 == 7. 7asal 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. 2asal olduğundan, 3 tip II zincir için bir başlangıç numarası olarak kabul edilemez . Yani bu sayılmaz, 3bu 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, 11biz, 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 :)
:)
2ve3sadece Asal sayılarpher ikisi için2p-1ve2p+1asal, bu yüzden2hangi yalnızca asal başlar iki tür önemsiz olmayan Cunningham zincirlerini.