Arkadaslar asal sayilari bulan bir program tasarladim. Eminim daha orijinal ve hizlilari vardir ama bazi arkadaslara yardimci olur diye paylasiyorum..

Asal Sayi Nedir?

Asal sayı, sadece kendisi ve 1 sayısına bolunebilen 1'den buyuk pozitif tam sayıdir..

Programin Amaci
Bulabildigi En buyuk Asal Sayiyi bulmak.. Program kapatilip acildiginda kaldigi yerden devam ediyor..

Nasil Calisiyor

Sorgulanan sayiyi , 2 den (Sorgulanan Sayi -1) 'e kadar boluyor ve sonuclari List'e ekliyor..Daha sonra Listteki tum itemleri teker teker kontrol ediyor. Eger tum degerler ondalik sayi ise bu asal sayidir deyip kaydediyor, en az bir tane tam sayi var ise bu asal sayi degildir deyip Sorgulanan sayiyi bir arttiriyor..Daha Sonra tekrar sorgulama..

Gerekenler
2 Adet Button
5 Adet Label
3 Adet Listbox
2 Adet Timer

[IMG]http://desmond.**************/Himg849/scaled.php?server=849&filename=asalsayi1.png&res=m edium[/IMG]

Not:
Listbox'larin name'leri resimde gorunuyor.. Label5.Name count olarak ayarlayin..

Not 2:
My Project - Settings bolumune
Name: Enbuyuk
Type: Integer
Value:0
Seklinde ekleyin.. (Amaci en buyuk asal sayiyi kaydetmek. Program kapatilip acildiginda su sayiyi alip kullanmak)

Programin Calisir Hali

[IMG]http://desmond.**************/Himg215/scaled.php?server=215&filename=asalsayi2.png&res=m edium[/IMG]

Kodlar:
PHP Code:
Imports System.Text.RegularExpressions
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Stop()
Timer2.Stop()
End Sub
Public Shared Function CheckInteger(ByVal strVal As [String]) As Boolean
Dim reg As New Regex("[^0-9-]")
Dim reg2 As New Regex("^-[0-9]+$|^[0-9]+$")
Return (Not reg.IsMatch(strVal) AndAlso reg2.IsMatch(strVal))
End Function

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
List.Items.Clear()
count.Text = count.Text + 1
Dim bolum As String
For i = 2 To count.Text - 1
bolum = count.Text / i
List.Items.Add(bolum)
Next
Timer1.Stop()
Timer2.Start()
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
If List.Items.Count 0 Then
Dim check As Boolean
check = CheckInteger(List.Items(0))
If check = True Then
Timer2.Stop()
Durum.Items.Add(count.Text & " Asal Sayi Degildir")
Timer1.Start()
Else
List.Items.RemoveAt(0)
End If
Else
Asalsayilar.Items.Add(count.Text)
Timer2.Stop()
Durum.Items.Add(count.Text & " Asal Sayidir")
My.Settings.Enbuyuk = count.Text
My.Settings.Save()
My.Settings.Reload()
Label4.Text = "Bulunan En Buyuk Asal sayi : " & My.Settings.Enbuyuk
Timer1.Start()
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1
Timer2.Interval = 1
List.Visible = False
Label1.Text = "Asal Sayilar"
Label3.Text = "Bildirimler"
Label2.Text = "Sorgulanan Sayi :"
Dim x As Integer = My.Settings.Enbuyuk
If x