Cod sursa(job #2457492)

Utilizator Catalin2002Catalin Craciun Catalin2002 Data 17 septembrie 2019 21:43:53
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

vector <int> v(3);
vector <int> ::iterator it,it1;
queue <int> w;

int n,verif;

void functie(int i)
{
    it1=it;

    //cout<<*it1;

    int j=i,x=v[i]*v[j],a,b;

    while(v[i]*v[j]<=n)
    {
        x=v[i]*v[j];
        w.push(v[i]*v[j]);
        j++;
    }


    while(!w.empty())
    {
        a=w.front();
        b=*it1;

        if(w.front()==*it1)
            v.erase(it1),w.pop();
        else
            it1++;
    }



}


int main()
{
    v[2]=2,v[1]=1;

    it=v.begin();

    v.erase(it);
    v.erase(v.begin());


    int i;

    fin>>n;


    for(i=3;i<=n;i++)
        if(i%2==1)
            v.push_back(i);


    i=1;
    it=v.begin();// it are ca si element 3
    it++;

    while(i<=v.size())
    {
        functie(i);
        i++,it++;
    }

    for(it=v.begin();it!=v.end();it++)
        fout<<*it<<" ";






    return 0;
}