document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #This Program Originally Created by vyn.
  2. #17th Jan 2012
  3. import random
  4. import os
  5. def moduloExp (x,y,n):                    #fungsi mencari modulo exp ~vyn
  6.     z = 1
  7.     for i in range (1,y+1):
  8.         z = z * x % n
  9.     return z
  10. def cekBanyakRandom (i):                  #fungsi mencari berapa kali pengambilan \'a\' dalam metode fermat ~vyn
  11.     if (i <= 100):
  12.         kaliCek = 4
  13.     elif (i > 100 and i<= 1000 ):
  14.         kaliCek = 7
  15.     elif (i > 1000 and i<=10000):
  16.         kaliCek = 10
  17.     else:
  18.         kaliCek = 14
  19.     return kaliCek
  20. awals = int(input("Nilai awal = "))
  21. akhir = int(input("Nilai akhir = "))
  22. if awals % 2 == 0:                         #pengkondisian nilai awal ~vyn
  23.     awal = awals + 1
  24. elif awals == 1:
  25.     awal = 2
  26. jumlah = 0
  27. if awal == 2:
  28.     print(awal,end=" ")
  29.     awal = awal+1
  30.     jumlah = jumlah+1
  31. for i in range (awal,akhir+1,2):               #pengecekan selang dua ~vyn
  32.     for j in range (1,cekBanyakRandom(i)):
  33.         hasil = 0
  34.         x = random.randint(1,i-1)
  35.         sementara = moduloExp (x,i-1,i)
  36.         if sementara != 1:
  37.             break
  38.         else:
  39.             hasil = sementara
  40.     if hasil == 1:
  41.         jumlah = jumlah + 1            #variabel penghitung bilangan prima ~vyn
  42.         if (jumlah % 5 == 0):
  43.             print(i)
  44.             print("")              #pindah baris jika sudah ditampilkan 5 ~vyn
  45.         else:
  46.             print(i,end = " ")             #bilangan ditampilkan secara horizontal ~vyn
  47. print("")
  48. print("\\n\\nJumlah bilangan prima dari ",awals," hingga ",akhir," adalah: ",jumlah)  
  49. os.system("pause") #untuk memberikan jeda sampai user menekan tombol enter.
');