Einzelnen Beitrag anzeigen
Alt 17.03.07, 12:39   #14 (permalink)
Eydeet
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Dieser Thread ist zwar schon etwas^^ älter, aber ich gehe mal davon aus, dass man die Programmieraufgaben jederzeit hochholen kann, da sie ja sozusagen nie gelöst sind, jedenfalls verstehe ich das so

Also hier meine recht schnelle Lösung, da mit dem Satz des Erastotenes:
Code:
#include <iostream>

using namespace std;

int main()
{
    int max;

    cout << "   Primpaare   " << endl
            << "---------------" << endl;

    do {
        cout << "Max: ";
        cin  >> max;
    } while(max < 0 || max > 1000000);

    bool *isPrime = new bool[max];
    int lastPrime = -1;

    // Define every number (ex. 0+1) as true
    for(int i = 2; i < max; i++)
    {
        isPrime[i] = true;
    }

    for(int i = 2; i < max; i++)
    {
        if(isPrime[i])
        {
             // remove multiples
            for(int k = i * 2; k < max; k += i)
            {
                isPrime[k] = false;
            }

            if (lastPrime + 2 == i)
            {
                cout << lastPrime << ", " << i << endl;
            }

            lastPrime = i;
        }
    }

    delete[] isPrime;
}
Eydeet ist offline   Mit Zitat antworten
 

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 49 50 51 52 53 54 55 56 57 58 59 60 61