Bir sayıyı oluşturan asal çarpanların nasıl en efektif şekilde bulunabileceğini anlattım bu videoda. Önemli olan iki nokta var; birincisi kontrol edeceğimiz sayıları verilen sayının kareköküne kadar (karekökü dahil) iterasyon ile kontrol etmek ve elimizdeki sayıyı bölebildiğimiz kadar o sayıya bölmek, ikincisi de eğer bu iterasyon sonrası sayımız 1’e eşit olmadıysa (videoda anlattığım 99 örneği gibi) son kalanı da listeye eklemek.
► Asal çarpan nedir? https://tr.wikipedia.org/wiki/Asal_%C3%A7arpan
Asal çarpan, bir sayının asal olan çarpanlarına denir. Örnek olarak 72 sayısının asal çarpanları 2 ve 3’ken (2^3 * 3^2), 4, 6, 8, 9, 12, 18, 24, 36, 72 asal çarpan değildir. Aritmetiğin temel teoremine göre bütün bileşik sayılar, asal çarpanların çarpımı olarak yazılabilmektedir.
/// <summary>
/// Sayının tüm asal çarpanlarını bulma
/// </summary>
static IList<int> PrimeFactors(int n)
{
var factors = new List<int>();
for(var i = 2; i <= Math.Sqrt(n); i++)
{
while(n % i == 0)
{
n /= i;
factors.Add(i);
}
}
if (n != 1)
factors.Add(n);
return factors;
}