Divisor aus Fragmenten eines Bruches

Neue Frage »

Nasenstein Auf diesen Beitrag antworten »
Divisor aus Fragmenten eines Bruches
Meine Frage:
Es ist bekannt, dass die Dezimaldarstellung des Bruches 1/p mit 0,05 beginnt und mit 7647 endet, also die Form 0,05...7647 hat. Weiterhin ist bekannt, dass p eine Primzahl ist. Wie groß ist p?

Meine Ideen:
Ich weiß, dass p prim ist. Außerdem kommt im Ergebnis nur eine 0 nach dem Komma, so dass p zwischen 11 und 97 liegen muss. Durch Probedivision konnte ich die möglichen Teiler auf 17 oder 19 eingrenzen. Die endgültige Division ergab dann 17 als Divisor.

Meine Frage ist nun, ob sich nur anhand der bekannten Fragmente sagen ließe, wie groß p ist? In Größenordnungen wie in dem Beispiel ist das Kleinkram, aber bei Zahlen wie 0,00000073... o.ä. wird das schon schwer, weil p dann schnell größer als 10^6 ist und in einem Zahlenbereich von möglicherweise mehreren Millionen Werten liegt.
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Nasenstein
Meine Frage:
Es ist bekannt, dass die Dezimaldarstellung des Bruches 1/p mit 0,05 beginnt und mit 7647 endet

Das geht gar nicht: Die einzigen beiden Primzahlen, wo die Dezimaldarstellung des Kehrwertes überhaupt endet, sind p=2 und p=5.

Vielleicht meinst du es ja so, dass derart die (unmittelbar nach dem Komma beginnende) Periode dieses periodischen Dezimalbruchs endet - das ist was anderes!
Nasenstein Auf diesen Beitrag antworten »

Natürlich! Mein Fehler Forum Kloppe die Periode des Bruches endet auf 7647

Danke für die Korrektur!
HAL 9000 Auf diesen Beitrag antworten »

Auf alle Fälle gilt für die Zahl , die die Periode bildet, dass , wobei die Periodenlänge ist. Im vorliegenden Fall auf die letzten 4 Stellen beschränkt heißt dies insbesondere

.

Das schränkt die Zahl der Kandidaten schon mal ganz schön ein, auch in anderen Fällen, wo etwa auch die letzten vier Stellen gegeben sind.
Nasenstein Auf diesen Beitrag antworten »

Ok, so weit so gut. Um dem Fass die Krone auszuschlagen - mein Anliegen als weiteres Beispiel [Quelle hierzu: Project Euler, Problem 358]

" There is only one cyclic number for which, the eleven leftmost digits are 00000000137 and the five rightmost digits are 56789 (i.e., it has the form 00000000137...56789 with an unknown number of digits in the middle)."

Vor der Zahlenkette 0000000137 steht dann nur noch "0,"

Erste Versuche haben mir gezeigt, dass p in diesem Fall wohl irgendwo zwischen 724.500.000 und 730.000.000 liegt. Die Periode des Bruches ist also entsprechend lang; eine Woche dürfte nicht reichen. In diesem Bereich liegen ca. 5,5 Mio Zahlen, laut Internet Prime Database sind darin ca 260.000 Primzahlen enthalten, wo nach Division die Periode mit 137 nach den führenden Nullen beginnt.

Hier stellt sich nun wieder die Frage der Bestimmung. Ich habe 56789 als Periodenende gegeben, suche aber eine neunstellige Zahl. Ich vermute also, mod 100000 ist unpassend. Die Primzahlen dem Bereich zu finden und probeweise zu dividieren ist auf jeden Fall impraktikabel.
HAL 9000 Auf diesen Beitrag antworten »

Tatsächlich sind die Grenzen und .

Ok, es ist , das ergibt aufgelöst . Da bleiben dann nur noch die 53 Kandidaten



...


von denen zu prüfen wäre, welche davon Primzahlen sind.

EDIT: Sorry, Zahlendreher - ist korrigiert.
 
 
Nasenstein Auf diesen Beitrag antworten »

Scheißerei... Versuch macht kluch!
Nasenstein Auf diesen Beitrag antworten »

Kleiner Nachtrag: wieso hier -1?
HAL 9000 Auf diesen Beitrag antworten »

Das ist ja wohl wurst, ob nun 99999 oder -1 mod 100000.

Aber was anderes - du hast das Problem 358 falsch eingeordnet: Da geht es nicht um Kehrwerte , sondern um zyklische Zahlen.
Nasenstein Auf diesen Beitrag antworten »

Nun, nachdem was Wikipedia über Cyclic Numbers (CN) hergibt, hat eine CN die Länge L und kann errechnet werden aus 1/(L+1), muss aber icht zwangsläufig. Hierbei ist (L+1) prim. Wie z.B. 17, das ergibt die CN 0588235294117647.

Das trifft doch ungefähr auf meine Beschreibung, oder habe ich mich irgendwo vertan?
Nasenstein Auf diesen Beitrag antworten »

Ungeachtet dessen erhalte ich nach Prüfung der Primzahleigenschaft genau diese 3 Zahlen:
725509891
726509891
729809891

Im Vergleich zum Anfang ein enormer Fortschritt.
HAL 9000 Auf diesen Beitrag antworten »

Ich bin jetzt nicht sattelfest, was die Begrifflichkeiten rund um diese zyklischen Zahlen betrifft.

Nach der Erklärung in der Wikipedia finde ich die führenden Nullen (sogar 9 an der Zahl) in deinem Text jedenfalls etwas befremdlich, passt nicht so ganz zusammen.

Und außerdem gibt es nicht genau eine, sondern drei Primzahlen, die das entsprechende Problem mit erfüllen - die zyklischen Zahlen mal außen vor gelassen.
Nasenstein Auf diesen Beitrag antworten »

Um das Problem zu lösen, müsste man, bspw. nach der Beispiel der schriftlichen Division, herausfinden, auf welche Zahlen die Periode endet. Das geht am Computer schneller als mit Zettel und Stift; man muss nur das Problem in den Griff kriegen, dass man 5 Zahlen am Ende braucht und nicht nur eine.
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Nasenstein
Um das Problem zu lösen, müsste man, bspw. nach der Beispiel der schriftlichen Division, herausfinden, auf welche Zahlen die Periode endet.

Ähmm, du meinst für unsere 3 Zahlen? Erstaunt1


Es ist wohl eher zu prüfen, welche der drei Kehrwertperioden tatsächlich die Länge hat (und nicht ein Teiler davon). Siehe auch hier:

Länge der Periode von Primzahlinversen

Es ist nur die letzte der drei - die ersten beiden haben nur Periode . Augenzwinkern
Nasenstein Auf diesen Beitrag antworten »

Ganz genau. Gesagt getan, Jean Blaise sei Dank.

Zahl - Periodenlänge
725509891 - 145101978
726509891 - 145301978
729809891 - 729809890

Das heißt, dass 729.809.891 unser Kandidat sein muss.
HAL 9000 Auf diesen Beitrag antworten »

So ist es (hatte deinen Beitrag gar nicht gesehen, als ich meinen editiert habe).
Nasenstein Auf diesen Beitrag antworten »

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
program cyclic_numbers;

function prime(const n: qword): boolean;
var i: qword;
begin
    prime := false;
    i := 3;
    while (i * i <= n) do begin
        if (n mod i = 0) then exit;
        i += 2;
    end;
    prime := true;
end;

procedure divide(const divisor: longword; var len, sum: qword);
var k, r: qword;
begin
    len := 1;
    r := 1;
    sum := 0;
    for k := 1 to (divisor - 1) do begin
        r *= 10;
        sum := sum + (r div divisor);
        r := r mod divisor;
        if (r = 0) or (r = 1) then break;
        len += 1;
    end;
end;

var p, s, l: qword;

begin
    p := 724709891;
    while (p < 729919891) do begin
        if (prime(p)) then begin
            writeln('Checking ', p, '...');
            divide(p, l, s);
            if (l = (p - 1)) then begin
                writeln;
                writeln('Number: ', p);
                writeln('Length of period: ', l);
                writeln('Sum of period: ', s);
                writeln;
            end;
        end;
        p += 100000;
    end;
end.


Das ist mein kleines Programm.

Vielen Dank an dich, HAL9000!!!!! Freude

Eine Bitte habe ich aber noch: Könntest du den Fakt, dass 56789p mod 100000 = 99999 dem Ausdruck p mod 100000 = 9891 entspricht, etwas elaborieren?
HAL 9000 Auf diesen Beitrag antworten »

entspricht ja , wir suchen also das Inverse von (-56789) modulo 100000. Bei so großen Zahlen nimmt man da gewöhnlich den EEA zu Hilfe: Bei der Berechnung von liefert der

,

und da ist dann das Inverse ja ablesbar.
Nasenstein Auf diesen Beitrag antworten »

Vielen Dank! Du warst wie immer eine große Hilfe Gott

Zu Schluss noch etwas provisionsfreie Werbung: h**ps_ projecteuler_net hat herausfordernde Matheaufgaben für alle die Ahnung haben oder nach der Ahnung suchen, so wie ich.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »