Konuyu görüntüle |
Yazar |
|
saskin
Kayıt: 22.09.2006 |
|
Write a shell script that prints the prime numbers and their sum between two
integers (inclusive) given from the command line. Consider the example given
below:
$prog2 1 10
Prime Numbers: 3 5 7 Sum = 15
|
|
Yazar |
|
kellad
istanbul
Kayıt: 21.01.2006 |
|
Ben asal sayı bulma ile ilgili bir program yazmıştım. Ana kod aşağıda yazıyor. VB6.0 ile yapmıştım. Kullandığım yöntemde 2 sayı arasındaki asal sayıları bulmak için önce büyük sayıyı bölebilecek asal sayılar bir listeye kaydediliyor. (Bu 2. liste). Sonra küçük sayıdan başlayıp büyük sayıya kadar her sayı 2.listede kendisini bölebilecek en büyük asal sayıya kadar "mod" işlemine tabi tutuluyor. Eğer herhangi bir mod işleminin sonucu o çıkarsa o sayı atlanıyor. Hiç biri 0 çıkmamışsa o sayı 1. listeye yazılıyor. Bu 1. liste ekranda gösteriliyor. İstersen bu listedeki tüm sayıları ayrı bir döngü ile toplayabilirsin. Bu yöntem çok hızlı. Çok büyük sayılar için bile kısa sürede sonuç veriyor. Aşağıdaki kodu istediğin dile çevirebilirsin.
Dim a As Long, b As Long, i As Long, ik As Long, j As Long, x As Long, xk As Long, y As Long, asal As Boolean
Private Sub Command1_Click()
a = Val(Text1)
b = Val(Text2)
If a = b Then MsgBox ("Eşit olmayan sayılar girin."): Exit Sub
If a > b Then k = a: a = b: b = k
If a < 2 Then MsgBox ("2'den kücük sayılar asal olamaz."): Exit Sub
On Local Error Resume Next
t1 = Time()
Label4.Caption = "İşlem yapılıyor."
Label3.Caption = "Lütfen bekleyin...."
DoEvents
List1.Clear
List2.Clear
List2.AddItem 2
'2. Listeye sayımı bölebilecek asal sayıları eklerim.
If b > 2 Then
For x = 3 To b ^ (1 / 2)
xk = x ^ (1 / 2)
asal = True
For y = 0 To List2.ListCount - 1
DoEvents
If (x Mod List2.List(y)) = 0 Then asal = False: Exit For
If List2.List(y) >= xk Then Exit For
Next
If asal = True Then List2.AddItem x
Next
End If
'1.Listeye aralığımdaki asal sayıları eklerim.
If a = 2 Then List1.AddItem 2
For i = a To b
ik = i ^ (1 / 2)
asal = True
For j = 0 To List2.ListCount - 1
ProgressBar2.Value = j
DoEvents
If (i Mod List2.List(j)) = 0 Then asal = False: Exit For
If List2.List(j) >= ik Then Exit For
Next
ProgressBar1.Value = i - a
If asal = True Then List1.AddItem i
Next
t2 = Time()
t = t2 - t1
Label3.Caption = "İşlem" + Str(Second(t) + 60 * Minute(t) + 3600 * Hour(t)) + " saniye sürdü."
Label4.Caption = "Toplam" + Str(List1.ListCount) + " tane asal sayı bulundu."
Open "asal" + Str(a) + "-" + Str(b) + ".txt" For Append As #1
For a = 0 To List1.ListCount - 1
Print #1, List1.List(a)
Next
Close #1
End Sub
Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub
Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
|
|
Yazar |
|
kellad
istanbul
Kayıt: 21.01.2006 |
|
Shell script nedir bilsem ödevinin tamamını, ücretiyle yapardım.Programlama konusunda iddialıyımdır.
Nedir bu shell script? İnternette bildiğin bir kaynak var mı bununlar ilgili. Hangi IDE programlarla yazabiliriz bunu?
Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | |