![]() |
| Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
Asal sayı bulma |
Yanıt Yaz
|
| Yazar | |
Alper
Yeni Üye
Kayıt Tarihi: 4 Saat 46 Dakika Önce Durum: Aktif Değil Puanlar: 2 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: Asal sayı bulmaGönderim Zamanı: 4 Saat 35 Dakika Önce Saat 14:13 |
|
1'den 100'e kadar olan asal sayıları bulmak için yazdığım kodda 2,3,5 ve 7'yi asal değil olarak kabul ediyor.Bu sorunu nasıl düzeltebilirim? var sayi1 : Integer { sayi1 = 3 if((((sayi1 div 2==0)||(sayi1 div 3==0)||(sayi1 div 5==0)||(sayi1 div 7==0)))) ShowMessage('Asal Değil') else if (sayi1 ==1) ShowMessage('Asal Değil') else if ((((sayi1 div 7==1)||(sayi1 div 5==1)||(sayi1 div 3==1)||(sayi1 div 2==1)))) ShowMessage('Asal') else ShowMessage('Asal') } |
|
|
Alper
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 422 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 1 saat 7 Dakika Önce Saat 17:41 |
|
Merhaba Alper,
Senin yazdığın kod için div yerine modu kullanmalıyız. Div operatörü bölme işleminin sonucunu verir. Asal sayı kontrolü için kalanı bulmak gerekir bunun için mod operatörünü kullanalım. Ayrıca yazılan if bloğun da ( sayi1 div 3==0) ifadesinde sayı 3 ise, 3'e bölümünden kalan 0'dır. Kod çıktısında da asal değil olarak işaretler ama asal sayılar kendilerine bölünebilirler. seni sorun için 1'den 100'e kadar bu şekil de ////////////////// var i, j, AsalMi : Integer; TumAsallar : String; { TumAsallar = ''; // 1'den 100'e kadar olan sayıları tek tek gez for (i = 1 to 100) { AsalMi = 1; // Başlangıçta sayıyı asal varsayalım // 1 ve 1'den küçük sayılar asal değildir if (i <= 1) { AsalMi = 0; } else { // 2'den başlayıp sayının kendisine kadar (kendisi hariç) bölen var mı bak for (j = 2 to i - 1) { if (i Mod j == 0) { AsalMi = 0; // Tam bölen bulundu, demek ki asal değil Break; // Döngüden çık, daha fazla aramaya gerek yok } } } // Eğer AsalMi hala 1 ise, sayı asaldır listeye ekle if (AsalMi == 1) { TumAsallar = TumAsallar + IntToStr(i) + ' '; } } ShowMessage('1-100 Arası Asal Sayılar: ' + TumAsallar); } //////////////////////////////////////////////// var i , sayi : Integer; AsalMi : Boolean; { sayi = 26; AsalMi = True;
for ( i = 2 to (sayi div 2)) { if (sayi mod i ==0) AsalMi=False } if AsalMi ShowMessage(IntToStr(sayi)+ ' asal sayıdır'); else ShowMessage(IntToStr(sayi)+ ' asal sayı değildir' ); } Div operatörünü kullanarak yapmak istersek eğer, div'i mod alma yani kalan için değil döngünün döneceğini hesaplamak için kullanıldı. matematiksel olarak bir sayının yarısından daha büyük bir tam böleni olamaz, kendisi hariç. mesela sayı ise 26 div 2= 13 eder yine mod operatörünü asalı kontrol de kullanıyoruz. https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |