Cod sursa(job #1233530)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 25 septembrie 2014 17:26:53
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
long n,x,i,s,j;
int prim(long x)
{
    for(int i=2;i<=sqrt(x);i++)
        if(x%i==0) return 0;
    return 1;
}
int prime(long a,long b)
{
    int r=a%b;
    while(r)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++){
        f>>x;s=0;
        if(prim(x)==1) s=2*x*(2*x+1)/2-2*x-x;
            else
            {
                if(x%2==0)
                {
                    for(j=3;j<=2*x;j=j+2)
                    {
                        if(prime(x,j)==1) s=s+j;
                    }
                    s=s+1;
                }
                else
                {
                    for(j=2;j<=2*x;j++)
                    {
                        if(prime(x,j)==1) s=s+j;
                    }
                }
            }
        g<<s<<"\n";
    }

    return 0;
}