Mengenal Teorema Carmichael dengan Python Bagian 2

Tulisan sebelumnya membahas mengenai “Mengenal Teorema Carmichael dengan Python“. Pada tulisan hari ini, akan dilanjutkan dengan “Mengenal Teorema Carmichael dengan Python Bagian 2”.

Jika bilangan prima p adalah pembagi dari F(n) maka p tidak bisa membagi untuk setiap F(m) dengan syarat m < n.Singkatnya, jika F(n)/p maka F(m)/!p dengan syarat m < n. Dengan begitu maka p disebut faktor karakteristik atau sebagai pembagi prima primitif F(n). Ini dia pembagi utama terkecil dari F(n):

1, 1, 2, 3, 5, 1, 13, 7, 17, 11, 89, 1, 233, 29, 61, 47, 1597, 19, 37, 41, 421, 199, 28657, 23, 3001, 521, 53, 281, 514229, 31, 557, 2207, 19801, 3571, 141961, 107, 73, 9349, 135721, 2161, 2789, 211, 433494437, 43, 109441, … (sequence A001578 in OEIS) [1].

Teorema Carmichael mengatakan bahwa setiap angka Fibonacci, terlepas dari pengecualian yang tercantum di atas, memiliki setidaknya satu pembagi prima primitif.

Mulai bingung lagi? Sama, saya juga bingung wkwkwk :D. Mari telaah dengan baik.

Contoh: Ambil F(13) dan F(14) kemudian lihat hasilnya.

Mari implementasikan dalam python.

```
print F(13)
print F(14)
# 233
# 377
```

Asumsikan
m = 13
n = 14

Mari implementasikan pernyataan jika F(n)/p maka F(m)/!p dengan syarat m < n dalam python.

```
from yp_carmichael import *

smallest_p = [1, 1, 2, 3, 5, 1, 13, 7, 17, 11, 89, 1, 233, 29, 61, 47, 1597, 19, 37, 41, 421, 199, 28657, 23, 3001, 521, 53, 281, 514229, 31, 557, 2207, 19801, 3571, 141961, 107, 73, 9349, 135721, 2161, 2789, 211, 433494437, 43, 109441]

for p in smallest_p:
    if 233 % p == 0:
        if is_prime(p):
            print p
            break

m = 13
n = 14
print float(F(m))/float(p)
print float(F(n))/float(p)
print float(F(m))/float(p) == float(F(n))/float(p)

'''
233
1.0
1.61802575107
False
'''
```

Masih bingung? Tentu, saya juga bingung. Kenapa angka 1 termasuk bilangan prima? Ya, karena 1 merupakan bilangan prima primitif. Dan ingat bilangan prima tidak sama dengan bilangan prima primitif. Kenapa begitu? Saya juga tidak tahu, ini hanya pendapat saya saja.

Lanjut? 🙂

[1] http://oeis.org/A001578

Advertisements

One thought on “Mengenal Teorema Carmichael dengan Python Bagian 2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s