Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #This Program Originally Created by vyn.
- #17th Jan 2012
- import random
- import os
- def moduloExp (x,y,n): #fungsi mencari modulo exp ~vyn
- z = 1
- for i in range (1,y+1):
- z = z * x % n
- return z
- def cekBanyakRandom (i): #fungsi mencari berapa kali pengambilan 'a' dalam metode fermat ~vyn
- if (i <= 100):
- kaliCek = 4
- elif (i > 100 and i<= 1000 ):
- kaliCek = 7
- elif (i > 1000 and i<=10000):
- kaliCek = 10
- else:
- kaliCek = 14
- return kaliCek
- awals = int(input("Nilai awal = "))
- akhir = int(input("Nilai akhir = "))
- if awals % 2 == 0: #pengkondisian nilai awal ~vyn
- awal = awals + 1
- elif awals == 1:
- awal = 2
- jumlah = 0
- if awal == 2:
- print(awal,end=" ")
- awal = awal+1
- jumlah = jumlah+1
- for i in range (awal,akhir+1,2): #pengecekan selang dua ~vyn
- for j in range (1,cekBanyakRandom(i)):
- hasil = 0
- x = random.randint(1,i-1)
- sementara = moduloExp (x,i-1,i)
- if sementara != 1:
- break
- else:
- hasil = sementara
- if hasil == 1:
- jumlah = jumlah + 1 #variabel penghitung bilangan prima ~vyn
- if (jumlah % 5 == 0):
- print(i)
- print("") #pindah baris jika sudah ditampilkan 5 ~vyn
- else:
- print(i,end = " ") #bilangan ditampilkan secara horizontal ~vyn
- print("")
- print("\n\nJumlah bilangan prima dari ",awals," hingga ",akhir," adalah: ",jumlah)
- os.system("pause") #untuk memberikan jeda sampai user menekan tombol enter.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement