Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 3. O-rätsel: Primfaktoren

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 ] [ 2 ] > 3 <
020
13.10.2003, 07:14 Uhr
~(un)wissender
Gast


Ah, natürlich muss das Ergebnis in einer Variable gespeichert werden, sonst bringt es nichts.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
13.10.2003, 07:29 Uhr
Pablo
Supertux
(Operator)



Zitat:
~(un)wissender postete
@virtual
Die Methode bool Primzahl ist schon fast perfekt, du kannst aber noch was an Performace rausholen, indem du i*i durch sqrt((foat)zahl) ersetzt. Damit du nicht durch Rundungsfehler eine Primzahl unterschlägst muss sqrt((foat)zahl) immer aufgerundet werden, auch bei weniger als .5 (obere Gaussklammer?)



Und und sie ist besser, wenn man nur mit den Primzahlen teilt.

C++:
if(zahl%i==0) return false;



Wenn i Prim ist und nur prim, dann geht auch schneller, den bisher haben wir nur um 2 erhöht, damit man nur ungerade Zahlen hat. Aber man kann sie schon herausgefundene Primzahlen in ein Array oder sowas speichern und i nur mit den Eintragen vom Array setzen. Dann läuft die Primzahl-Funktion noch schneller.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
13.10.2003, 08:24 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
~(un)wissender postete
@virtual
Die Methode bool Primzahl ist schon fast perfekt, du kannst aber noch was an Performace rausholen, indem du i*i durch sqrt((foat)zahl) ersetzt. Damit du nicht durch Rundungsfehler eine Primzahl unterschlägst muss sqrt((foat)zahl) immer aufgerundet werden, auch bei weniger als .5 (obere Gaussklammer?)


Hm, Du meinst

C++:
i*i<=zahl


Sei weniger performant als

C++:
i<=sqrt((float)zahl)+0.5


Das kann kann ich mir ehrlich gesagt nicht vorstellen....
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
13.10.2003, 22:09 Uhr
~(un)wissender
Gast


Na,na, virtual, von dir hätte ich ein bißchen mehr erwartet!


C++:
bool Primzahl(const unsigned int &zahl)
{
    if (zahl<2) return false;
    if(zahl==2 || zahl==3) return true;
    if (zahl%2==0) return false;
    unsigned int wurzelAusZahl =
        static_cast<unsigned int>(sqrt(static_cast<float>(zahl)) + 0.5f);
    for(unsigned int i=3;wurzelAusZahl <=zahl;i+=2)
        if(zahl%i==0) return false;
    return true;
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
13.10.2003, 22:12 Uhr
~(un)wissender
Gast


@Pablo
Jo, das könnte man machen, wäre sogar richtig cool :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
31.03.2005, 21:15 Uhr
~socke
Gast


Brauche bitte HILFE!!!
Undzwar benötige ich einen Quellcode von c++ borland builder der mir einen text in ROT13 und Cesar verschlüsselt. Bitte auf c++ objektorientierte programmierung.

Vielen DANK im voraus!

MfG

Socke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
31.03.2005, 21:38 Uhr
Bruder Leif
dances with systems
(Operator)


Moin Socke!

1. Völlig falscher Bereich,
2. Völlig falscher Thread, mach bitte im BCB-Bereich einen eigenen auf
3. Wir sind kein Hausaufgabenservice, ohne eigenen Ansatz wirst Du nicht viel Antworten bekommen...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
31.03.2005, 23:59 Uhr
0xdeadbeef
Gott
(Operator)


Ich hab ne Antwort - wenn sich nochmal jemand an das erste Golf-Rätsel erinnert... Das ist schon mal ROT13:

C++:
main(c){while(read(0,&c,1))putchar(isalpha(c)?c&96|(c%32+12)%26+1:c);}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
19.08.2005, 19:26 Uhr
DarthDevilous



ich will auch! ich will auch!
hier ist meine variante:


C++:
#include <vector>
#include <iostream>

using namespace std;

typedef unsigned int tNum;
typedef vector<tNum> tVec;
typedef tVec::iterator tIt;

tVec gefundene_primzahlen;

bool Primzahl(tNum i)
{
    if (i <= 1) return false;
    else if (i == 2) return true;
    for (tIt it = gefundene_primzahlen.begin();
        it != gefundene_primzahlen.end();
        it++)
        if (!(i % (*it)))
            return false;
    return true;
}

int main(int argc, char *argv[])
{
    bool faktor_gefunden;
    tNum j;
    for (tNum i = 2; i < 2000; i++)
    {
        cout << i << " = ";
        if (Primzahl(i))
        {
            gefundene_primzahlen.push_back(i);
            cout << "Primzahl" << endl;
        }
        else
        {
            faktor_gefunden = false;
            j = i;
            for (tIt it = gefundene_primzahlen.begin();
                it != gefundene_primzahlen.end();
                it++)
            {
                while (!(j % (*it)))
                {
                    if (faktor_gefunden)
                        cout << " * " << (*it);
                    else
                        cout << (*it);
                    j /= (*it);
                    faktor_gefunden = true;
                }
            }
            cout << endl;
        }
    }
    return 0;
}




Bearbeitung von DarthDevilous:

Ich hab das return 0 vergessen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



Dieser Post wurde am 19.08.2005 um 20:26 Uhr von DarthDevilous editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 <     [ Rätselecke ]  


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: