Bir sayının en büyük asal çarpanını hesaplamak için en iyi yaklaşım nedir?
En verimli aşağıdaki olacağını düşünüyorum:
- Temiz bir şekilde bölünen en düşük asal sayıyı bulun
- Bölme sonucunun asal olup olmadığını kontrol edin
- Değilse, bir sonraki en düşük değeri bul
- Git 2.
Bu varsayımı, küçük asal faktörleri hesaplamanın daha kolay olduğuna dayandırıyorum. Bu doğru mu? Başka hangi yaklaşımlara bakmalıyım?
Düzenleme: Şimdi oyunda 2'den fazla asal faktör varsa benim yaklaşım boş olduğunu fark ettim, çünkü sonuç 2 diğer primerlerin bir ürünü olduğunda başarısız olur, bu nedenle tekrarlayan bir algoritma gereklidir.
Tekrar düzenleme: Ve şimdi bunun hala işe yaradığını fark ettim, çünkü son bulunan asal sayı en yüksek olmalıdır, bu nedenle 2. adımdan asal olmayan sonucun daha fazla test edilmesi daha küçük bir asal ile sonuçlanacaktır.
1.
açıkça bölen herhangi bir sayı bul (i = 2'den int'e (sqr (num))) 2.
bu sayıya bölün (num = num / i) ve 1'de hiçbir şey bulunmadıkça tekrarlayın . 's aralık 3.
num en büyük faktördür