Anasayfa Programlama / Kodlar İndir / Download Makale / Yazı Resim / Fotoğraf
E-Learning / Video Matematik Hakkımda Bilgi Ziyaretçi Defteri

ASAL ARAŞTIRICI KODLARI - PRIME NUMBER SEARCHER CODES

Option Explicit
Dim m, a, i, say, sure As Single
Dim s, s2 As Single
Dim asal(1000000) As Single
Dim at, met As String
Dim dur As Boolean
Dim eng As Boolean

Dim gen, yuk As Single

Private Sub cmd_dil_Click()
eng = Not eng
If eng = True Then
Caption = "Prime Number Searcher - www.alieskici.com"
Label1.Caption = "Number"
o(1).Caption = "Is that a prime number?"
o(0).Caption = "Find prime numbers"
Label2.Caption = "First"
Label3.Caption = "Last"
o(2).Caption = "Prime factors"
o(3).Caption = "Twin primes"
Frame1.Caption = "Interval of indice"
cmd_hesapla.Caption = "Calculate"
cmd_dur.Caption = "Stop"
cmd_yeni.Caption = "New"
cmd_dil.Caption = "Turkce"
cmd_hak.Caption = "About"
cmd_kap.Caption = "Exit"
Else
Caption = "ASAL ARASTIRICI - www.alieskici.com"
Label1.Caption = "Sayi"
o(1).Caption = "Sayi asal mi?"
o(0).Caption = "Asallari bul"
Label2.Caption = "Ilk"
Label3.Caption = "Son"
o(2).Caption = "Asal carpanlar"
o(3).Caption = "Ikiz asallar"
Frame1.Caption = "Indis araligi"
cmd_hesapla.Caption = "Hesapla"
cmd_dur.Caption = "dur"
cmd_yeni.Caption = "Yeni"
cmd_dil.Caption = "English"
cmd_hak.Caption = "Hakkinda"
cmd_kap.Caption = "Kapat"
End If
End Sub

Private Sub cmd_dur_Click()
dur = True
dugmeler
End Sub

Private Sub cmd_hak_Click()
If eng = True Then
MsgBox ("Prime Number Searcher V 1" & at & "ALi ESKiCi" & at & "9.9.2003 - ISTANBUL / TURKEY" & at & "alieskici (at) hotmail" & at & "www.alieskici.com" & at & "This prime number searcher program runs at possible maximum speed." & at & at & "For secure and fast operation suggesting to close other programmes." & at & at & "The programme run on different systems and can't find any problem. In spite of this, programmer can't be respect to responsible for serious problems of systems that programme run." & at & at & "ALi ESKiCi" & at & "www.alieskici.com"), vbInformation, (Caption)
Else
MsgBox ("ASAL ARASTIRICI V 1" & at & "ALi ESKiCi" & at & "9.9.2003 - ISTANBUL" & at & "alieskici (at) hotmail" & at & "www.alieskici.com" & at & "Bu asal sayi arastirma programi mumkun en yuksek hizla calisir." & at & at & "Islemlerin saglikli ve hizli yapilabilmesi icin de diger programlarin kapatilmasi onerilir." & at & at & "Program degisik sistemlerde calistirilmis ve herhangi bir sorunla karsilasilmamistir. Buna ragmen kullanildigi sistemde cikabilecek ciddi bir problemden program yapimcisi sorumlu tutulamaz." & at & at & "ALi ESKiCi" & at & "www.alieskici.com"), vbInformation, (Caption)
End If
End Sub

Private Sub cmd_hesapla_Click()
On Error GoTo hata

cmd_hesapla.Visible = False
cmd_dur.Visible = True
ts.Text = ""
ti.Text = ""
met = ""
dur = False
DoEvents

sure = Timer

t.Text = Trim(Str(Int(Val(t.Text))))

If Val(t.Text) - s < 0 And o(2).Value = False Then
For i = Val(tind1.Text) To Val(tind2.Text)
If asal(i) < Val(t.Text) Then met = met & asal(i) & " " Else Exit For
Next
ts.Text = met

sure = Abs(Timer - sure) * 1000

If eng = True Then
ti.Text = "Total prime number: " & i
ti.Text = ti.Text & at & "Rate of prime number: % " & Int(i / Val(t.Text) * 1000) / 10
ti.Text = ti.Text & at & "Calculating time: " & Format(sure, "###,###") & " miliseconds"
Else
ti.Text = "Toplam asal sayi: " & i
ti.Text = ti.Text & at & "Asal sayi orani: % " & Int(i / Val(t.Text) * 1000) / 10
ti.Text = ti.Text & at & "Hesaplama suresi: " & Format(sure, "###,###") & " milisaniye"
End If

dugmeler
Exit Sub
End If

s = Val(t.Text)

If s < 2 Then
t.Text = ""
t.SetFocus
dugmeler
Exit Sub
End If

If eng = True Then
ti.Text = "Processing. Please wait ...."
Else
ti.Text = "Islem yapiliyor. Lutfen bekleyin ...."
End If

say = 1
asal(1) = 2

If o(0).Value = True Then

If asal(2) <> 0 Then GoTo s3

asalbul

ElseIf o(1).Value = True Then

a = Fix(Val(t.Text) / 2)
If (Val(t.Text) - a * 2) = 0 Then
ti.Text = ""
If eng = True Then
ts.Text = "Not a prime number"
Else
ts.Text = "Asal degil"
End If
dugmeler
Exit Sub
End If

For m = 3 To Sqr(s) Step 2
a = Fix(Val(t.Text) / m)
' a l i es ki ci .c om
If (Val(t.Text) - a * m) = 0 Then
ti.Text = ""
If eng = True Then
ts.Text = "Not a prime number"
Else
ts.Text = "Asal degil"
End If
Exit Sub
End If
Next

If eng = True Then
ts.Text = "A prime number"
Else
ts.Text = "Asal"
End If
ti.Text = ""
dugmeler
Exit Sub

ElseIf o(2).Value = True Then
asalbul
s2 = s
Dim ussay As Single
For i = 1 To say
ussay = 0
bol1:

a = Int(s2 / asal(i))
If s2 - a * asal(i) = 0 Then
s2 = a
ussay = ussay + 1
If ussay = 1 Then ts.Text = ts.Text & asal(i)
GoTo bol1
Else
GoTo bol2
End If
bol2:
If ussay > 1 Then ts.Text = ts.Text & " ^ " & Trim(Str(ussay)) & ", "
If ussay = 1 Then ts.Text = ts.Text & ", " ' a l i es ki c i .c o m
Next
ts.Text = Left(ts.Text, Len(ts.Text) - 2)
sure = Abs(Timer - sure) * 1000
dugmeler
If eng = True Then
ti.Text = "Number factored to its prime numbers"
ti.Text = ti.Text & at & "Calculating time: " & Format(sure, "###,###") & " miliseconds"
Else
ti.Text = "Sayi asal carpanlarina ayrildi."
ti.Text = ti.Text & at & "Hesaplama suresi: " & Format(sure, "###,###") & " milisaniye"
End If
Exit Sub

ElseIf o(3).Value = True Then
asalbul
End If

s2:
tind2.Text = Trim(Str(say))
If Abs(Val(tind1.Text) - Val(tind2.Text)) > 3999 Or Abs(Val(tind1.Text) - Val(tind2.Text)) > say - 1 Then
If eng = True Then
ti.Text = "Indice interval can't be more than 3999. Automatic appointment will do. (This process for no being of errors and to fast operation.)"
Else
ti.Text = "Indis araligi farki 3999'dan buyuk olmamali. Otomatik atama yapilacak. (Bu islem hata olusmamasi ve hizli islem yapilmasi icindir.)"
End If

tind2.Text = Trim(Str(say))
tind1.Text = Trim(Str(say - 3999))
' al i e s ki c i .c om
If say - 3999 < 1 Then
tind1.Text = "1"
Else
End If
End If

s3:
If o(3).Value = False Then
For i = Val(tind1.Text) To Val(tind2.Text)
If asal(i) <> 0 Then met = met & asal(i) & " "
Next
Else
If Val(tind1.Text) = 1 Then tind1.Text = "2"
For i = Val(tind1.Text) To Val(tind2.Text)
If Abs(asal(i) - asal(i - 1)) = 2 Then met = met & asal(i - 1) & " " & asal(i) & " "
Next
End If
ts.Text = met

sure = Abs(Timer - sure) * 1000

If eng = True Then
ti.Text = "Total prime number: " & i
ti.Text = ti.Text & at & "Rate of prime number: % " & Int(i / Val(t.Text) * 1000) / 10
ti.Text = ti.Text & at & "Calculating time: " & Format(sure, "###,###") & " miliseconds"
Else
ti.Text = "Toplam asal sayi: " & say 'a l i es ki ci .c om
ti.Text = ti.Text & at & "Asal sayi orani: % " & Int(say / Val(t.Text) * 1000) / 10
ti.Text = ti.Text & at & "Hesaplama suresi: " & Format(sure, "###,###") & " milisaniye"
End If

dugmeler

Exit Sub

hata:
If eng = True Then
MsgBox ("Entered number is too big."), vbExclamation, ("Prime Number Searcher")
Else
MsgBox ("Girilen sayi cok buyuk."), vbExclamation, ("Asal Arastirici")
End If
dugmeler
End Sub

Function asalbul()
For m = 3 To s Step 2
For i = 1 To Int(Sqr(m))
a = Int(m / asal(i))
If (m - a * asal(i)) = 0 Then GoTo s1
Next
say = say + 1
asal(say) = m
s1:
If dur = True Then
If eng = True Then
ti.Text = "Process stopped !"
Else
ti.Text = "Islem durduruldu !"
End If
Exit Function
End If
DoEvents
Next
End Function

Sub dugmeler()
cmd_hesapla.Visible = True
cmd_dur.Visible = False
End Sub

Private Sub cmd_kap_Click()
End ' al i es ki ci .c om
End Sub

Private Sub cmd_web_Click()
On Error GoTo webhata
Dim X As Variant
X = Shell("start http://www.alieskici.com")
Exit Sub
webhata:
If eng = True Then
MsgBox ("Error !"), vbCritical, ("Prime Number Searcher")
Else
MsgBox ("Hata !"), vbCritical, ("Asal Arastirici")
End If
End Sub

Private Sub cmd_yeni_Click()
t.Text = ""
ts.Text = ""
ti.Text = ""
met = ""
tind1 = ""
tind2 = ""
dur = False
t.SetFocus
For i = 1 To 1000000
asal(i) = 0
Next
End Sub

Private Sub Form_Load()
at = Chr(13) & Chr(10)

gen = Width
yuk = Height
End Sub

Private Sub Form_Resize()
If WindowState = 1 Then Exit Sub
Width = gen
Height = yuk
End Sub

Private Sub lad_Click()
cmd_web_Click
End Sub

Ali Eskici Web Sitesi 2008