ASAL SAYI PROGRAMININ KAYNAK KODLARINI GELİŞTİRMEK İSTEYENLER İÇİN PAYLAŞIYORUM.
from tkinter import *
import tkinter.ttk as ttk
root = Tk()
root.title("ASAL SAYI PROGRAMI")
root.wm_iconbitmap("ASAL.ico")
root.tk_setPalette("light blue")
root.resizable(width=FALSE, height=FALSE)
mainframe = ttk.Frame(root,padding='3 3 12 12')
mainframe.grid(column=0, row=0)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight =1)
say=0
asalliste={}
asallist=[]
usluliste=[]
class asal_listele:
def __init__(self):
root1 = Tk()
root1.transient()
root1.title("ASAL SAYILARI LİSTELE")
root1.wm_iconbitmap("ASAL.ico")
mainframe = ttk.Frame(root1,padding='3 3 12 12')
mainframe.grid(column=0, row=0)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight =1)
alt_sınır = ttk.Entry(mainframe, width =27)
alt_sınır.grid(column = 1, row = 0)
üst_sınır = ttk.Entry(mainframe, width =27)
üst_sınır.grid(column = 1, row = 1)
ttk.Label(mainframe, text ='Alt Sınırı Girin').grid(column = 0, row=0)
ttk.Label(mainframe, text ='Üst Sınırı Girin').grid(column = 0, row=1)
def asal_listele_alt_üst():
alt=int(alt_sınır.get())
üst=int(üst_sınır.get())
if alt>1 and üst>1:
işlem()
else:
root1 = Tk()
root1.transient()
root1.title("ASAL SAYILARI LİSTELE")
root1.wm_iconbitmap("ASAL.ico")
metin= Text(root1, width=60,font="Helvetica 10 bold")
metin.insert(END,"Uygun olmayan değerler girmemelisiniz. \n(Örneğin başlangıca 1 sayısını girmek gibi.)")
metin.pack()
def işlem():
global say,asalliste
root2 = Tk()
root2.transient()
root2.title("ASAL SAYILARI LİSTELE")
root2.wm_iconbitmap("ASAL.ico")
alt=int(alt_sınır.get())
üst=int(üst_sınır.get())
scrollbar = Scrollbar(root2)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(root2, width=50,height=30,yscrollcommand = scrollbar.set )
for i in range(alt,üst+1):
bool = False
for j in range(2,i):
if i % j == 0:
bool=True
if bool == False:
say += 1
asalliste[say]=i
listbox.insert(END, str(i)+" sayısı asaldır.")
listbox.insert(END, " ")
listbox.insert(END, str(say)+" tane asal sayı bulundu.")
listbox.pack(side=LEFT, fill=Y)
scrollbar.config(command=listbox.yview)
root2.mainloop()
ttk.Button(mainframe, text='Listele',command=asal_listele_alt_üst).grid(column=1, row=2)
root1.mainloop()
class sayı_asal_mı:
def __init__(self):
root3 = Tk()
root3.transient()
root3.title("SAYI ASAL MI?")
root3.wm_iconbitmap("ASAL.ico")
mainframe = ttk.Frame(root3,padding='3 3 12 12')
mainframe.grid(column=0, row=0)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight =1)
asal = ttk.Entry(mainframe, width =27)
asal.grid(column = 1, row = 0)
ttk.Label(mainframe, text ='Sayıyı Giriniz').grid(column = 0, row=0)
def araştır():
root4 = Tk()
root4.transient()
root4.title("ASAL SAYI MI")
root4.wm_iconbitmap("ASAL.ico")
scrollbar = Scrollbar(root4)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(root4, width=50,height=10,yscrollcommand = scrollbar.set )
asalmı=int(asal.get())
for i in range(asalmı,asalmı+1):
bool = False
for j in range(2,i):
if i % j == 0:
bool=True
if bool == False:
listbox.insert(END, str(asalmı)+" sayısı asaldır.")
else:
listbox.insert(END, str(asalmı)+" sayısı asal değildir.")
listbox.pack(side=LEFT, fill=Y)
scrollbar.config(command=listbox.yview)
root4.mainloop()
ttk.Button(mainframe, text='Araştır',command=araştır).grid(column=1, row=2)
root3.mainloop()
class asal_çarpanlar:
def __init__(self):
root5 = Tk()
root5.transient()
root5.title("SAYININ ASAL ÇARPANLARI")
root5.wm_iconbitmap("ASAL.ico")
mainframe = ttk.Frame(root5,padding='3 3 12 12')
mainframe.grid(column=0, row=0)
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight =1)
asal_ç = ttk.Entry(mainframe, width =27)
asal_ç.grid(column = 1, row = 0)
ttk.Label(mainframe, text ='Sayıyı Giriniz').grid(column = 0, row=0)
def çarpan_bul():
global asallist,usluliste
root6 = Tk()
root6.transient()
root6.title("SAYININ ASAL ÇARPANLARI")
root6.wm_iconbitmap("ASAL.ico")
scrollbar = Scrollbar(root6)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(root6, width=50,height=10,yscrollcommand = scrollbar.set )
aç=int(asal_ç.get())
listbox.insert(END, str(aç)+" Sayısının Asal Çarpanları")
listbox.insert(END, " ")
for i in range(2,aç):
while True:
if aç % i == 0:
asallist.append(i)
aç/=i
else:
if i in asallist:
usluliste.append(str(i)+"^"+str(asallist.count(i)))
break
listbox.insert(END, usluliste)
listbox.pack(side=LEFT, fill=Y)
scrollbar.config(command=listbox.yview)
asallist=[]
usluliste=[]
root6.mainloop()
ttk.Button(mainframe, text='Asal Çarpanlarını Bul',command=çarpan_bul).grid(column=1, row=2)
root5.mainloop()
ttk.Button(mainframe, text='Sayı Asal mı?',command=sayı_asal_mı).grid(column=1, row=0)
ttk.Button(mainframe, text='Asal Sayıları Listele',command=asal_listele).grid(column=2, row=0)
ttk.Button(mainframe, text='Asal Çarpanlarına Ayır',command=asal_çarpanlar).grid(column=3, row=0)
root.mainloop()
Hocam şu kodu
for j in range(2,i):
şununla değiştirirseniz büyük sayı aralıklarını hesaplarken hissedeceğiniz bir hıza kavuşursunuz.
for j in range(2,i**0.5):
Bunun yanında 2 ile bölünebilmeye ayrıdan bakar ve sonra da
for j in range(3,i**0.5,2):
kodu ile devam ederseniz hız 1 kat daha artar.