Cod sursa(job #1666502)

Utilizator Davyd23David Dedu Davyd23 Data 28 martie 2016 03:28:15
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<fstream>
#include<math.h>
using namespace std;

ifstream in("fractii.in");
ofstream out("fractii.out");
int prim(int n);
int verificare(int a,int b);
int main(){
    int val;
    in>>val;

    if(val<0){
        val*=-1;
    }

    in.close();

    int nr_fractii=val; // 1/toate val

    if(val!=1){
        nr_fractii+=val-1; // restu de val -1
    }

    for(int i=2;i<val;i++){
        for(int j=i+1;j<=val;j++){
            if(j%i!=0){

                if(j%2!=i%2 && verificare(i,j)==1){
                    nr_fractii+=2;
                }
                else if(prim(i) || prim(j)){
                    nr_fractii+=2;
                }



            }
        }
    }
    out<<nr_fractii;
    out.close();
    return 0;
}

int prim(int n){
    if(n%2==0) return 0;
    for(int i=3;i<sqrt(n)+2;i+=2){
        if(n%i==0) return 0;
    }
    return 1;
}

int verificare(int a,int b){
    int i=0;
    int cmmdc=b;

    while(cmmdc>a){
        cmmdc-=a;
    }

    if(cmmdc==1) return 1;

    if(a%cmmdc==0 && b%cmmdc==0)return 0;
    else return 1;
}