2017-09-15 3 views
0

Ich habe eine beliebige Nummer x. Ich möchte eine Zahl berechnen, die x cofrime ist, die nahe (ish) zu der Quadratwurzel von x ist. Ich muss sie nicht alle finden, und Factoring x ist teuer. Ich brauche nur eine Nummer.Finden einer Kopritzzahl einer allgemeinen Größe

Konstante Zeit, vorzugsweise.

+0

Wählen Sie eine Primzahl, die nicht x teilt, schließen (ish) zu root x? – dmuir

+0

Computing Primes ist teuer ... – Scott

+0

... und es gibt eine Menge von ihnen ... es sei denn, sie sind "spezielle" Primzahlen. Mersenne Primzahlen sind zu spärlich, es gibt etwas wie log (x) von ihnen weniger als x. Wenn es jedoch eine Klasse von Primzahlen gäbe, für die es eine Wurzel (x) von ihnen weniger als x, schön verteilt, geschlossene Form zu finden gäbe, wäre das ideal. Ich habe auf eine Lösung wie diese gehofft ... Euklidischer Algorithmus ist log (x), und ich weiß nicht über die Verteilung von Zufallszahlen für eine beliebige Zahl, aber die Verteilung der Primzahlen ist so, dass man eine Primzahl nahe der Wurzel (x) erwartet um >> log (x) ... log (x)^2 denke ich. – Scott

Antwort

3

Sie können die GCD mit der Euclidean algorithm ziemlich effizient berechnen, also wenn Sie nur die Zahlen in der Nähe der Quadratwurzel versuchen, sollten Sie einen Kandidaten sehr schnell finden.

Es ist unwahrscheinlich, dass Sie eine ganze Reihe von Zahlen mit gemeinsamen Faktoren erhalten, denn wenn Sie ein gemeinsames Primzahl p finden, wird das nächste Mal, wenn Sie von der gleichen Primzahl getroffen werden, später p sein.

Verwandte Themen