Algoritma Soru Çözümü | 2

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS
Soru:
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?
Soru linki : https://projecteuler.net/problem=7




Bizden istediği 10001'inci asal sayı. Bunun için öncelikle sayıların asallığını kontrol eden bir fonksiyon yazdım.Öncelikle bir result değişkeni oluşturup değerini True olarak belirliyor. Sayı bir döngüye giriyor eğer 2 ile kendisi arasındaki sayılardan birine bile bölünüyorsa result'u False değerine çeviriyor ve en sonunda result'un değerini döndürüyor. Sonrasında sayac ve sayi adlı iki değişken oluşturdum. While döngüsünün şartına sayac<=10001 ekleyerek 10001'inci asal sayıya kadar gitmesini sağladım. Eğer ki sayı asal ise sayaca bir ekliyor. Sonra da sayımızı yazdırıyor.

PYTHON İÇİN

Kod:
import math

def asalmi(number):
    result = True
    for i in range(2,int(math.sqrt(number)) + 1):
        if number%i==0:
            result = False
            i = number
            break
    return result

sayac = 0
sayi = 0
while sayac<=10001:
    sayi+=1
    if asalmi(sayi):
        sayac+=1
print(sayi)

C# İÇİN


Kod:
private static bool asalmi(int number)
        {
            bool result = true;

            for (int i = 2; i < number; i++)
            {
                if (number%i==0)
                {
                    result = false;
                    i = number;
                    break;
                }
            }
            return result;

        }
        public static **** Main(string[] args)
        {
            int sayac = 0,sayi = 0;
            while (sayac<=10001)
            {
                sayi++;
                if (asalmi(sayi))
                {
                    sayac++;
                }
                
            }
            Console.WriteLine(sayi);
            Console.ReadLine();
        }

 
Son düzenleme:

Mapzilla

Adanmış Üye
23 Eyl 2016
7,207
13
Kod:
[FONT=monospace][COLOR=#008000][B]import[/B][/COLOR] [COLOR=#0000FF][B]math[/B][/COLOR]

[COLOR=#008000][B]def[/B][/COLOR] [COLOR=#0000FF]asalMi[/COLOR](sayi: [COLOR=#008000]int[/COLOR]) [COLOR=#666666]->[/COLOR] [COLOR=#008000]bool[/COLOR]:
    [COLOR=#008000][B]if[/B][/COLOR] sayi [COLOR=#666666]<[/COLOR] [COLOR=#666666]2[/COLOR]:
        [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]False[/COLOR]

    [COLOR=#008000][B]for[/B][/COLOR] i [COLOR=#AA22FF][B]in[/B][/COLOR] [COLOR=#008000]range[/COLOR]([COLOR=#666666]2[/COLOR], [COLOR=#008000]int[/COLOR](math[COLOR=#666666].[/COLOR]sqrt(sayi)) [COLOR=#666666]+[/COLOR] [COLOR=#666666]1[/COLOR]):
        [COLOR=#008000][B]if[/B][/COLOR] sayi [COLOR=#666666]%[/COLOR] i [COLOR=#666666]==[/COLOR] [COLOR=#666666]0[/COLOR]:
            [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]False[/COLOR]

    [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]True[/COLOR]

sayac [COLOR=#666666]=[/COLOR] [COLOR=#666666]0[/COLOR]
asal [COLOR=#666666]=[/COLOR] [COLOR=#666666]0[/COLOR]

[COLOR=#008000][B]while[/B][/COLOR] sayac [COLOR=#666666]<[/COLOR] [COLOR=#666666]10001[/COLOR]:
    asal [COLOR=#666666]+=[/COLOR] [COLOR=#666666]1[/COLOR]
    [COLOR=#008000][B]if[/B][/COLOR] asalMi(asal):
        sayac [COLOR=#666666]+=[/COLOR] [COLOR=#666666]1[/COLOR]
        
[COLOR=#008000][B]print[/B][/COLOR](f[COLOR=#BA2121]'{sayac}. asal sayı:'[/COLOR], asal)
[/FONT]
 

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS
Kod:
[FONT=monospace][COLOR=#008000][B]import[/B][/COLOR] [COLOR=#0000FF][B]math[/B][/COLOR]

[COLOR=#008000][B]def[/B][/COLOR] [COLOR=#0000FF]asalMi[/COLOR](sayi: [COLOR=#008000]int[/COLOR]) [COLOR=#666666]->[/COLOR] [COLOR=#008000]bool[/COLOR]:
    [COLOR=#008000][B]if[/B][/COLOR] sayi [COLOR=#666666]<[/COLOR] [COLOR=#666666]2[/COLOR]:
        [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]False[/COLOR]

    [COLOR=#008000][B]for[/B][/COLOR] i [COLOR=#AA22FF][B]in[/B][/COLOR] [COLOR=#008000]range[/COLOR]([COLOR=#666666]2[/COLOR], [COLOR=#008000]int[/COLOR](math[COLOR=#666666].[/COLOR]sqrt(sayi)) [COLOR=#666666]+[/COLOR] [COLOR=#666666]1[/COLOR]):
        [COLOR=#008000][B]if[/B][/COLOR] sayi [COLOR=#666666]%[/COLOR] i [COLOR=#666666]==[/COLOR] [COLOR=#666666]0[/COLOR]:
            [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]False[/COLOR]

    [COLOR=#008000][B]return[/B][/COLOR] [COLOR=#008000]True[/COLOR]

sayac [COLOR=#666666]=[/COLOR] [COLOR=#666666]0[/COLOR]
asal [COLOR=#666666]=[/COLOR] [COLOR=#666666]0[/COLOR]

[COLOR=#008000][B]while[/B][/COLOR] sayac [COLOR=#666666]<[/COLOR] [COLOR=#666666]10001[/COLOR]:
    asal [COLOR=#666666]+=[/COLOR] [COLOR=#666666]1[/COLOR]
    [COLOR=#008000][B]if[/B][/COLOR] asalMi(asal):
        sayac [COLOR=#666666]+=[/COLOR] [COLOR=#666666]1[/COLOR]
        
[COLOR=#008000][B]print[/B][/COLOR](f[COLOR=#BA2121]'{sayac}. asal sayı:'[/COLOR], asal)
[/FONT]

Çok mantıklı bir şey. Ekledim koduma. Teşekkürler
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.