Cod sursa(job #2297217)

Utilizator stefan1233secuiu stefan stefan1233 Data 5 decembrie 2018 16:20:52
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.41 kb
#include <bits/stdc++.h>
using namespace std;
int v[1001];
ifstream in ("norocos.in");
ofstream out ("norocos.out");
int main()
{
    long long n, k, p, i, a, m=2000000001, M=0, c=0, d;
    cin >> p >> n >> k;
    if(p==1)
    {
        for(i=1;i<=n;i++)
        {
            in >> a;
            if(a%2==1)
            {
                if(a<m)
                    m=a;
                if(a>M)
                    M=a;
            }
            else
                c++;
        }
        if(c==n)
            out << 0;
        else
            out << m << " " << M;
    }
    if(p==2)
    {
        for(i=1;i<=n;i++)
            cin >> v[i];
        int nrdiv=0, d;
        bool repeat=0;
        for(i=1;i<=n;i++)
        {
            d=2;
            nrdiv=0;
            while(v[i]>1)
            {
                p=0;
                repeat=0;
                while(v[i]%d==0)
                {
                    ++p;
                    n/=d;
                    if(p>1)
                    {
                        repeat=1;
                        break;
                    }
                }
                if(repeat==1)
                    break;
                if(p)
                    nrdiv++;
                ++d;
                if(v[i]>1 && d*d>v[i])
                    d=v[i];
            }
        }
        cout << nrdiv;
    }
    return 0;
}