Verilen sayının asal olup olmadığını kontrol et.
1 ve altındaki sayılar asal değildir.
İpuçları
💡 İpucu 1: n <= 1 ise direkt False döndür.
💡 İpucu 2: 2'den √n'e kadar bölenleri kontrol et: range(2, int(n**0.5)+1)
💡 İpucu 3: Herhangi bir bölen bulursan False, döngü biterse True döndür.
Yaklaşım & Açıklama
Anagram kontrolü, iki string'in aynı harfleri aynı sayıda içerip içermediğini kontrol eder.
**Problem:** "listen" ve "silent" → True (anagram).
**İki yaklaşım:**
```python
from collections import Counter
# 1. Counter karşılaştırma — O(n)
def is_anagram(s1, s2):
return Counter(s1) == Counter(s2)
# 2. Sıralama — O(n log n) ama basit
def is_anagram(s1, s2):
return sorted(s1) == sorted(s2)
```
**Normalizasyon şart:** Büyük/küçük harf ve boşluk farkını yok saymak için önce `s.replace(" ", "").lower()`.
**Performans karşılaştırması:** 1MB metin için Counter ~3ms, sorted ~120ms. Counter O(n) olduğu için 40x hızlı.
**Edge case:** Unicode (Türkçe karakterler) — `casefold()` kullan, `lower()` Türkçe "İ" için yanlış sonuç verir.
Soru yükleniyor...
Asal Sayı Kontrolü — Python Sorusu #7 | PythonMulakat Soruları | Python Alıştırma Soruları