💻
Programlama Kitapçığı
  • 💻Programlama Kitapçığı
  • 👩‍🏫 Kitapçığın Planı
  • 🎰Adı ve Hesaplanan Yaşı Yazdırmak
  • ➗İki Sayının Tam Bölünüp Bölünmemesini Tespit Etmek
  • 🔢Sayıları Yan Yana Yazdırmak
  • 🚦Verilen Koşula Göre Sayıların Sayısını Bulmak
  • 🔎En Büyük Sayıyı Bulmak
  • 👨‍👩‍👦 Nüfus Sayımı İstatistikleri
  • 📊İstatistik
  • 📈İstatistik 2
  • 🎶Bir Sayının Rakamlarını Bulmak
  • ❗Bir Sayının Faktöriyelini Hesaplamak
  • 🖇️Bir Seri Değerini Hesaplamak
  • 😎Asal Sayılar
  • 🔲Tam Kare Sayılar
  • 🔟0️⃣ Yüzler Basamağı Üzerinde İşlemler Yapmak
  • 🔟➡ 2️⃣ Onluk Tabanından İkilik Tabana Çevirme
  • 🔢Tam ve Ondalık Hane Sayısı
  • 🧲En Yakın Sayıyı Bulmak
  • ✂️Kesir Sadeleştirme
  • 🔮Şans Oyunu
  • 🕶️Şifreleme Mantığı
  • 🍏🍎 Simetrik Diziler
  • ➕İki Matrisin Toplamı
  • ✖️İki Matrisin Çarpımı
  • 🔥Kare Matrislerin Üzerinde İşlemler
Powered by GitBook
On this page
  • ❓ Soru
  • ⛓ Program Kısımları
  • 👓 Çözüm Yöntemi
  • 👩‍🔧 Çözüm Adımları
  • 🤖 Kod
  • ⚙ C++ Kodu
  • 🐍 Python Kodu
  • ☕ Java Kodu
  • ⏹ C# Kodu
  • 🧩 Akış Şeması
  • 🎉 Ekran Çıktısı
  • 💡 Notlar

Was this helpful?

Export as PDF

Asal Sayılar

❓ Soru

10 ile 200 arasındaki tamsayılardan asal sayı olanları bulan algoritmayı yazınız.

⛓ Program Kısımları

  1. 10 ile 200 arasındaki sayıları kontrol ederek asal olanları bulmak.

  2. Asal olanları ekrana yazdırmak.

👓 Çözüm Yöntemi

  • Asal sayı: Yalnız bir ve kendisi ile bölünebilen birden büyük doğal sayıdır.

  • Bir i sayısı asal olup olmadığını tespit etmek için x=2den x=i-1e kadar artan bir sayaç oluştururuz. x sayının bir böleni olup olmadığını kontrol ederiz.

👩‍🔧 Çözüm Adımları

  1. i, x, “j”nin tanımlanması.

  2. 11’den 99’a kadar döngünün oluşturulması.

    • x ile jye başlangıç değerinin atanması

    • x ile kök(i) +1 eşit olmadığı sürece:

      • xin inin bir böleni olup olmadığının kontrol edilmesi.

    • Asal sayıların ekrana yazdırılması.

🤖 Kod

⚙ C++ Kodu

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int i, x, j; // “i”, “x”, “j”nin tanımlanması
    for (i = 11; i < 100; i++){ // 11’den 99’a kadar döngünün oluşturulması
        // “x” ile “j”ye başlangıç değerinin atanması   
        x = 2;
        j = 0; 
        // “x” ile (kök(i)+1) eşit olmadığı sürece:
        // “x” değeri hiçbir zaman (kök(i)+1) değeri ile “i”yi bölemez.
        // Bu yüzden bu değerin (kök(i)+1) üstünü kontrol etmeye gerek yoktur
        while (x != (int)(sqrt(i)) + 1){
            if (i % x == 0) { // “x”in “i”nin bir böleni olup olmadığının kontrol edilmesi   
                j = 1;
                break; // En az bir bölen bulunursa sayının asal olmadığını öğrenmek için yeterlidir 
            } else 
                x++;
    }
    if (j == 0)
        cout << i << " "; // Asal sayıların ekrana yazdırılması 
    }
 }

🐍 Python Kodu

import math
# 11’den 99’a kadar döngünün oluşturulması.
for i in range(11, 100):
    # “x”e yeni değerinin atanması
    x = 2
    j = 0
    # “x” ile (kök(i)+1) eşit olmadığı sürece:
    # “x” değeri hiçbir zaman (kök(i)+1) değeri ile “i”yi bölemez.
    # Bu yüzden bu değerin (kök(i)+1) üstünü kontrol etmeye gerek yoktur
    while (x != int(math.sqrt(i)) + 1):
        if (i % x == 0): # “x”in “i”nin bir böleni olup olmadığının kontrol edilmesi
            j = 1
            break # En az bir bölen bulunursa sayının asal olmadığını öğrenmek için yeterlidir
        else:
            x += 1
    if (j == 0):
        # Asal sayıların ekrana yazdırılması
        print(i)

☕ Java Kodu

public class Asal {
 public static void main(String arg[]) {
  int i, x, j; // “i”, “x”, “j”nin tanımlanması
  for (i = 11; i < 100; i++) { // 11’den 99’a kadar döngünün oluşturulması
   // “x” ile “j”ye başlangıç değerinin atanması   
   x = 2;
   j = 0; 
   // “x” ile (kök(i)+1) eşit olmadığı sürece:
   // “x” değeri hiçbir zaman (kök(i)+1) değeri ile “i”yi bölemez.
   // Bu yüzden bu değerin (kök(i)+1) üstünü kontrol etmeye gerek yoktur
   while (x != (int)(Math.sqrt(i)) + 1){  // “x”in “i”nin bir böleni olup olmadığının kontrol edilmesi
    if (i % x == 0) {
     j = 1;
     break; // En az bir bölen bulunursa sayının asal olmadığını öğrenmek için yeterlidir 
    } else x++;
   }
   if (j == 0)
    System.out.println(i); // Asal sayıların ekrana yazdırılması 
  }
 }
}

⏹ C# Kodu

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Asal{
    class Program{
        static void Main(string[] args){
            int i, x, j; // “i”, “x”, “j”nin tanımlanması
            for (i = 11; i < 100; i++){ // 11’den 99’a kadar döngünün oluşturulması
                // “x” ile “j”ye başlangıç değerinin atanması   
                x = 2; 
                j = 0;
                // “x” ile (kök(i)+1) eşit olmadığı sürece:
                // “x” değeri hiçbir zaman (kök(i)+1) değeri ile “i”yi bölemez.
                // Bu yüzden bu değerin (kök(i)+1) üstünü kontrol etmeye gerek yoktur
                while (x != (int)(Math.Sqrt(i)) + 1){
                    if (i % x == 0){
                        j = 1;
                        break; // En az bir bölen bulunursa sayının asal olmadığını öğrenmek için yeterlidir 
                    }
                    else x++; 
                }
                if (j == 0)
                    Console.WriteLine(i); // Asal sayıların ekrana yazdırılması
            }
            Console.ReadLine();
        }
    }
}

🧩 Akış Şeması

🎉 Ekran Çıktısı

11  13  17  19  23
29  31  37  41  43
47  53  59  61  67
71  73  79  83  89
97

💡 Notlar

  1. En az bir bölen bulunursa sayının asal olmadığını öğrenmek için yeterlidir. O yüzden sonraki değerleri kontrol etmeden döngüden çıkılır.

  2. x değeri hiçbir zaman (kök(i)+1) değeri ile iyi bölemez. Bu yüzden bu değerin (kök(i)+1) üstünü kontrol etmeye gerek yoktur. Örnek: i= 10 için kök(10)+1 değeri hiçbir zaman 10’u tam bölemez. Diğer sayıları da buna kıyas edebiliriz.

PreviousBir Seri Değerini HesaplamakNextTam Kare Sayılar

Last updated 5 years ago

Was this helpful?

😎