0Pricing
Competitive Programming Academy · Ders

Asal Çarpanlara Ayırma ve Bölenler

N'yi asal kuvvetlere ayırın ve bölenleri sayın.

Asal Çarpanlara Ayırma ve Bölenler, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

N'yi Parçalara Ayırın

1'den büyük her tam sayı, asalların benzersiz bir çarpımıdır. Bu ayrışımı, yani asal çarpanlara ayrışını bulmak, birçok sayı teorisi problemini çözmenizi sağlar. 🧩

Deneme Bölmesi Fikri

n'yi bölen en küçük asalı çıkarın, onu bölerek yok edin ve tekrarlayın. Bu basit deneme bölmesi, n'yi 1'e kadar küçültür.

Köke Kadar Döngü

i*i, n'den küçük veya n'ye eşit kaldığı sürece bölenleri sınayın. Karekökün ötesinde en fazla bir asal çarpan kalabilir.

while i * i <= n:
    ...

Her Çarpanı Çıkarın

i, n'yi böldüğü sürece bölmeye devam edin ve i'yi kaydedin. Böylece sonraki çarpana geçmeden önce o asalın tam kuvvetini yakalarsınız.

while n % i == 0:
    factors.append(i)
    n //= i

Geriye Kalan Asal

Döngüden sonra n hâlâ 1'den büyükse, kendisi karekökten büyük bir asal çarpandır. Onu bir kez ekleyin.

if n > 1:
    factors.append(n)

Tam İşlem

Birlikte bu işlem, çarpanlara ayırmayı O(sqrt n) zamanda gerçekleştirir; her asalı tam tekrar sayısıyla ve sırayla döndürür.

def factorize(n):
    f, i = [], 2
    while i * i <= n:
        while n % i == 0:
            f.append(i); n //= i
        i += 1
    if n > 1: f.append(n)
    return f

Kuvvetler Hâlinde Gruplayın

Bölenleri saymak için her asalı, 2,2,2 yerine 2^3 örneğindeki gibi üssüyle birlikte istersiniz. Bir sayaç, tekrarları düzenli biçimde sayar.

from collections import Counter
exp = Counter(factorize(n))

Bölen Formülü

n, p1^a çarpı p2^b ise bölenlerin sayısı (a+1) çarpı (b+1) olur. Her üs, bir ek seçenek sağlar.

Bölenleri Sayma

Tüm asal sayılardaki her üsse bir ekleyip bunları çarpın. Böylece bölenleri tek tek listelemeden toplam bölen sayısını elde edersiniz.

count = 1
for e in exp.values():
    count *= (e + 1)

Bölenlerin Toplamı

İlgili bir formül, her asal sayının geometrik serisini kullanarak bölenleri toplar. Bunu bilmek, mükemmel sayı ve aliquot problemlerinde işinize yarar.

Elekle Hız Kazanın

Çok sayıda çarpanlara ayırma işlemi için her sayının en küçük asal çarpanını bir elek kullanarak önceden hesaplayın. Böylece her sorguda çarpanlara ayırma işlemi log n adımda tamamlanır.

Hızlı Kontrol

Bölen sayısını bulma formülünü belirli bir sayıya uygulayın.

Özet

Artık N'yi deneme bölmesiyle O(sqrt n) sürede çarpanlarına ayırabilir, geriye kalan asal sayıyı yakalayabilir, üsleri gruplayabilir ve çarpım formülüyle bölenleri sayabilirsiniz. ✅

Sıkça Sorulan Sorular

“Asal Çarpanlara Ayırma ve Bölenler” dersi ücretsiz mi?

Evet — “Asal Çarpanlara Ayırma ve Bölenler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Asal Çarpanlara Ayırma ve Bölenler” dersinde ne öğreneceğim?

N'yi asal kuvvetlere ayırın ve bölenleri sayın. Competitive Programming Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Asal Çarpanlara Ayırma ve Bölenler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. GCD, LCM ve Öklid Algoritması
  2. sqrt(n)'ye Kadar Asallık Testi
  3. Eratosthenes Eleği
  4. Asal Çarpanlara Ayırma ve Bölenler
← Competitive Programming Academy Sayfasına Dön