Bu ders notunda, Bölen Listesi (Divisors List) kavramını ve bu listeyi oluşturmak için kullanılan algoritmaları inceleyeceğiz. Bu konu, sayı teorisi ve algoritma analizi derslerinde temel bir öneme sahiptir.
Bir tam sayının bölen listesi, o sayıyı kalansız bölen tüm pozitif tam sayıların kümesidir. Matematiksel olarak, \( n \) pozitif bir tam sayı olmak üzere, \( d \) sayısı \( n \)'nin bir böleni ise \( n \mod d = 0 \) şartını sağlar.
Örnek: 12 sayısının bölen listesi: {1, 2, 3, 4, 6, 12}
Bir sayının tüm bölenlerini bulmak için farklı algoritmik yaklaşımlar kullanılır. Verimlilik açısından önemli farklılıklar gösterirler.
En basit yaklaşımdır. 1'den \( n \)'ye kadar tüm sayıları kontrol eder.
Zaman Karmaşıklığı: \( O(n) \)
Dezavantaj: Büyük \( n \) değerleri için çok yavaştır.
Matematiksel bir gözlem kullanır: Eğer \( i \), \( n \)'nin bir böleniyse, \( \frac{n}{i} \) de \( n \)'nin bir bölenidir.
Zaman Karmaşıklığı: \( O(\sqrt{n}) \)
Avantaj: Büyük sayılar için çok daha verimlidir.
def bölen_listesi(n):
bölenler = []
for i in range(1, int(n**0.5)+1):
if n % i == 0:
bölenler.append(i)
if i != n // i:
bölenler.append(n//i)
return sorted(bölenler)
Sonuç: Bölen listesi algoritması, teorik matematik ile bilgisayar biliminin verimli bir şekilde kesiştiği temel konulardan biridir. Algoritmik düşünme ve optimizasyon becerilerini geliştirmek için mükemmel bir örnektir.