Sayfayı Yazdır | Pencereyi Kapat

Asal sayı bulma

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Form Oluşturma
Forum Adı: TclForm Oluşturma
Forum Tanımlaması: Standart bir form oluşturma
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1229
Tarih: 17 Kasım 2025 Saat 19:20
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Asal sayı bulma
Mesajı Yazan: Alper
Konu: Asal sayı bulma
Mesaj Tarihi: 17 Kasım 2025 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')
 }
 
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - 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">

-------------
Alper



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 17 Kasım 2025 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" rel="nofollow - 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">



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net