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