Python dan Bilangan Prima


#!/usr/bin/env python  
import sys                         # untuk mengambil argument yang diberikan  
ret=True                           # return value  
def itsPrime(val):               # definisi fungsi itsprime, return(1=prime, 0=not prime, -1=error value )  
    global ret;                     # agar ret bisa diakses dari fungsi  
    if val >= 2:                   # jika nilai yang diberikan besar dari 2  
        if val > 9:                 # jika nilai yang diberikan besar dari 9  
            up=10                  # nilai maksimum untuk  pembagian =10  
        else:  
            up=val                 # jika tidak maka nilai maksimum=nilai yang diberikan  
        for p in range(2,up):   # perulangan selama p=2 dan kecil dari nilai up  
            if val % p == 0:    # jika nilai modulus p == 0  
                ret=False          # berarti bukan bilangan prime  
                break               # langsung keluar dari perulangan  
    else:                            # nilai  yang dimasukkan kecil dari 2  
        ret=-1  
    return ret  

if __name__ == "__main__":  
    try:  
        prime=itsPrime(int(sys.argv[1]))  
        if prime==1:  
            print 'prime'  
        elif prime==0:  
            print 'Not prime'  
        else:  
            print 'Please integer above 2'  
    except ValueError:  
        print "Please enter an integer number"  
    except IndexError:  
        print "Please input one argument"  

Penjelasan dari kode diatas bisa dilihat di setiap baris komentarnya, untuk yang lainnya bisa dilihat dibawah ini

  • baris ke 20 -> untuk mencegah kemungkinan error maka digunakan try
  • baris ke 21 -> melakukan checking terhadap nilai yang diberikan kemudian nilai return dari fungsi itsPrime dimasukkan ke variabel prime, selanjutnya untuk yang dibawahnya adalah melakukan checking pada nilai prime. Jika nilainya sama dengan 1 berarti bilangan prima, 0 jika bukan, -1 jika nilainya kecil dari 2.
  • baris ke 28 -> jika nilai yang dimasukkan bukan bilangan bulat positif(>0)
  • baris ke  30 -> jika tidak ada nilai yang dimasukkan.

Sedangkan algoritma dari code diatas adalah seperti berikut:

Tulisan ini dibuat dengan OS Ubuntu 9.10Gimp 2.6.7Dia 0.97, so itsOPENSOURCE