Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Datentyp??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.03.2006, 20:07 Uhr
~Wurst
Gast


Also ich habe ein Proggie geschrieben, mit dem ich Primfaktoren zerlegen will. Es sieht so aus:


Code:

#include <iostream>
using namespace std;


int main()
{
long i,j,k;
j=0;
k=0;
cout << "Bitte Zahl eingeben!" << "\n";
cin.get() >> i;
if ((i%2) ==0)
    {
    long a =  i/2;
    cout << "Die Primfaktoren sind " << a << " und " << i/a;  
    return 0;
    }
    
long v = 3;

while (j==0 || k==0)
    {
    if ((i%v)==0)
        {
        j=v;
        k=i/v;
        cout << "Die Primfaktoren sind " << j << " und " << k;
        return 0;
        }
    if (v>=(i/2))
        {
        cout << "Keine Lösung!";
        return 0;
        }
    cout << v << "\n";
    v+=2;
    }




return 0;
}




Der Feind ist:

114381625757888867669235779976146612010218296
721242362562561842935706935245733897830597123
563958705058989075147599290026879543541


Allerdings sagt mir der PC dann immer, dass die Faktoren 2 und 18 sind, was ja augenscheinlich falsch ist. Mit kleineren Primfaktoren wie zB 85 und 55 funktioniert das Programm jedoch. Kann es sein, dass die Zahl einfach zu groß für den Datentyp long ist, und deswegen ein Teil abgeschnitten ist, oder woran liegt das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.03.2006, 20:09 Uhr
~Wurst
Gast


Sry ich meinte habe mich verschrieben. Es ist nur cin und nicht cin.get()
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.03.2006, 20:32 Uhr
Spacelord
Hoffnungsloser Fall


Naja,selbst wenn er die Zahl in nen long packen könnte würdest du das Ergebniss deines Programms in diesem Leben nicht mehr zu Gesicht bekommen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.03.2006, 21:25 Uhr
~Wurst
Gast


naja die Lösung ist nicht so interessant... Ich wollte nur mal gucken, wie schnell mein PC das so packt. Die Zahl hab ich aus einem Buch, wo die Primzahlen eh drinnestehen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.03.2006, 22:10 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von ~Wurst:
... Ich wollte nur mal gucken, wie schnell mein PC das so packt....


Zitat von Spacelord:

....in diesem Leben nicht mehr.......





MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 31.03.2006 um 22:10 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.03.2006, 23:59 Uhr
Lensflare




Zitat von ~Wurst:

Kann es sein, dass die Zahl einfach zu groß für den Datentyp long ist, und deswegen ein Teil abgeschnitten ist, oder woran liegt das?



Natürlich ist diese Zahl zu groß für den typ long

Es wundert mich außerdem, dass dein Kompiler anscheinend nicht einmal einen Fehler ausgegeben hat.

Also in long kannst du eine Zahl von 0 bis 2^32 (4 bytes) speichern, wenn du unsigned long verwendest.

Für größere Zahlen muss man sich seinen eigenen Datentyp schreiben.


Bearbeitung:

Ok, wenn du diese Zahl zur Laufzeit übergibst, dann ist der Kompiler nicht Schuld.
Aber gib das mal als eine Konstante im Quellcode ein


--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 01.04.2006 um 00:04 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: