Pertimbangkan masalah berikut:
Biarkan menjadi subset terbatas dari bilangan asli.
Biarkan | mana adalah pembagi umum terbesar dari dang c d ( s i , s j )
Cari elemen maksimum .
Masalah ini dapat diselesaikan dengan mengambil pembagi umum terbesar dari setiap pasangan menggunakan algoritma Euclid dan melacak yang terbesar.
Apakah ada cara yang lebih efisien untuk menyelesaikan ini?
3
Anda mungkin ingin melihat Bagian 3.3 dari Menambang Ps dan Qs Anda: Deteksi Kunci Lemah yang Luas di Perangkat Jaringan (Heninger et al, Usenix Security 2012). Mereka menggambarkan suatu algoritma untuk menghitung gcd berpasangan di gcd, dalam pengaturan tertentu, menggunakan pohon produk dan pohon sisa. Saya tidak tahu apakah itu meluas ke masalah Anda.
—
DW
Sudahkah Anda mencoba sesuatu dengan faktorisasi prima?
—
Ryan
Misalkan semua angka relatif prima tetapi sulit untuk faktor (misalnya setiap sama dengan untuk bilangan prima ). Maka tampaknya sulit untuk menghindari memeriksa semua GCD berpasangan. (Katakanlah saya memberi tahu Anda bahwa setelah memeriksa semua pasangan kecuali bahwa semua GCD berpasangan adalah Bagaimana Anda dapat menebak tanpa menghitungnya?)
—
usul
Link @usul DW persis masalah itu. Sejumlah besar, katakan satu miliar, kunci enkripsi harus semua produk dari dua bilangan prima yang berbeda. Tetapi kami menduga bahwa beberapa kunci enkripsi memiliki faktor utama yang sama (yang akan menjadi gcd dari kedua kunci, membuat keduanya mudah menjadi faktor). Algoritme itu memungkinkan Anda menemukan kunci dengan faktor umum tanpa menghitung n (n-1) / 2 gcd untuk n = 1 miliar.
—
gnasher729