Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C by Jean-Pierre ( 3 years ago )
// Eratostene.cpp : Ce fichier contient la fonction 'main'. L'exécution du programme commence et se termine à cet endroit.
//

#include <iostream>

#include <list>
#include <Windows.h>

using namespace std;

class Eratostene
{
public:
	Eratostene(int);
	~Eratostene();

private:

};

Eratostene::Eratostene(int Nb)
{

}

Eratostene::~Eratostene()
{
}

int main()
{
    int N;
    float sqrtN;
    list <int> listeNbPremier;

    // Passage de la console en utf 8
    SetConsoleOutputCP(CP_UTF8);
    SetConsoleCP(CP_UTF8);

    cout << "Entrez un nombre >= 2: ";
    cin >> N;

    if (N < 2)
    {
        cout << "Le nombre doit être >= 2 !";
        return 1;
    }

    sqrtN = sqrt((float)N);

    // Fabrication de la liste
    for (int i = 2; i <= N; listeNbPremier.push_back(i++));

    //for (list <int>::iterator iter = liste.begin(); iter != liste.end(); iter++)
    //{
    //    cout << "Iterator " << *iter << "\n";
    //}

    //list <int>::iterator it = liste.begin();


    for (list <int>::iterator it= listeNbPremier.begin(); it != listeNbPremier.end(); it++)
    {
        int n = *it;
        list <int>::iterator itsav;

        //cout << "----> Contenu de it: " << *it << "\n";

        for (list <int>::iterator itliste = it; (itliste != listeNbPremier.end()) && (n <= sqrtN) ; itsav = itliste, itliste++)
        {
            //cout << "Contenue de itliste: " << *itliste << " Et n= " << n << "\n";
            if (*itliste == n)
            {
                //cout << "1er de la liste, on continu pour rechercher les multiples de " << n << " !!! \n";
                continue;
            }
            if (*itliste % n == 0)
            {
                //cout << "Remove  " << *itliste << " car " << *itliste << " divisible par " << n << "!!!\n";
   
                listeNbPremier.remove(*itliste);

                itliste = itsav;
            }

        }

    }

    cout << "Aprés iteration il reste " << listeNbPremier.size() << " élément dans la liste " << " sur " << N << "\n";
    for (list <int>::iterator iter = listeNbPremier.begin(); iter != listeNbPremier.end(); iter++)
    {
        cout << *iter << " - ";
    }
    cout << "\n";

}

 

Revise this Paste

Your Name: Code Language: