Cod sursa(job #2793261)

Utilizator christalknightChristian Micea christalknight Data 3 noiembrie 2021 13:10:40
Problema Fractii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int verif_ireductibila(unsigned int i, unsigned int j, unsigned int array_Eratostene[], unsigned int len){
    unsigned int k;
    for(k = 0; k <= len; k++){
        //cout<<"array_Eratostene[k] = "<<array_Eratostene[k]<<endl;
        if(i % array_Eratostene[k] == 0 && j % array_Eratostene[k] == 0)
            return 0;
        }
    //cout<<"i = "<<i<<", j = "<<j<<endl;
    return 1;
    }

int main()
{
    unsigned int N, i, j, len;
    unsigned long long nr = 0;
    fin>>N;
    unsigned int array_temp_Eratostene[N + 1], array_Eratostene[N + 1];
    for(i = 0; i <= N; i++)
        array_temp_Eratostene[i] = i;
    array_temp_Eratostene[1] = 0;
    for(i = 2; i * i <= N; i++){
        if(array_temp_Eratostene[i])
            for(j = i * 2; j <= N; j += i)
                array_temp_Eratostene[j] = 0;
        }
    for(i = 0, len = 0; i <= N; i++){
        if(array_temp_Eratostene[i]){
            array_Eratostene[len++] = array_temp_Eratostene[i];
            }
        }
    len--;
    for(i = 1; i <= N; i++)
        for(j = 1; j <= N; j++){
            if(verif_ireductibila(i, j, array_Eratostene, len))
                nr++;
            }
    fout<<nr;
}