Apa pendekatan terbaik untuk menghitung faktor prima terbesar dari suatu angka?
Saya pikir yang paling efisien adalah sebagai berikut:
- Temukan bilangan prima terendah yang membagi dengan bersih
- Periksa apakah hasil pembagiannya prima
- Jika tidak, cari yang terendah berikutnya
- Pergi ke 2.
Saya mendasarkan asumsi ini pada hal itu menjadi lebih mudah untuk menghitung faktor prima kecil. Apakah ini benar? Pendekatan apa lagi yang harus saya perhatikan?
Sunting: Saya sekarang menyadari bahwa pendekatan saya sia-sia jika ada lebih dari 2 faktor utama dalam permainan, karena langkah 2 gagal ketika hasilnya adalah produk dari dua bilangan prima lainnya, oleh karena itu diperlukan algoritma rekursif.
Sunting lagi: Dan sekarang saya menyadari bahwa ini masih berfungsi, karena bilangan prima yang ditemukan terakhir harus menjadi bilangan tertinggi, oleh karena itu setiap pengujian lebih lanjut terhadap hasil non-prima dari langkah 2 akan menghasilkan bilangan prima yang lebih kecil.
1.
menemukan angka yang membagi dengan jelas (untuk i = 2 ke int (sqr (num))) 2.
dibagi dengan angka itu (num = num / i) dan berulang sampai tidak ditemukan dalam interval 1. 3.
num adalah faktor terbesar