Cod sursa(job #942135)

Utilizator ShadoWolfCodrut Constantin Gusoi ShadoWolf Data 20 aprilie 2013 23:07:30
Problema Sum Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <limits>
using namespace std;

ifstream in("sum.in");
ofstream out("sum.out");

void sumeaza(long x);
int cmmdc(int a,int b);

int main()
{
	int n,c;
	in>>n;
	in.ignore(numeric_limits<streamsize>::max(),'\n');
	for(int i=0;i<n;++i)
	{
		in>>c;
		in.ignore(numeric_limits<streamsize>::max(),'\n');
		sumeaza(c);
	}
	in.close();
	out.close();
	return 0;
}

void sumeaza(long x)
{
	long sum=0;
	if (x%2==0)
	{
		for(int i=1;i<x*2;i+=2)
		{
			if (cmmdc(x,i)==1) sum+=i;
		}
	}
	else
	{
		for(int i=1;i<x*2;++i)
		{
			if (cmmdc(x,i)==1) sum+=i;
		}
	}
	out<<sum<<"\n";
}

 
int cmmdc(int a,int b)
{
    int r;
    while (b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}