Cod sursa(job #995579)

Utilizator mipsPavel Mircea mips Data 9 septembrie 2013 16:14:50
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.47 kb
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;


#define FOR(i,n) for (int i = 0 ; i< n;i++)
#define FORI(i,s,e) for (int i = s ; i<= e;i++)
#define MP(x,y) make_pair(x,y)
#define PB(x) push_back(x)
#define RALL(x) x.rbegin(),x.rend()
#define SZ(x) x.size()
#define FZ(x) memset(x,0,sizeof(x))

int tot[100001];
bool primef[100001];
int main()
{
    FILE* f = fopen("sum.in","r");
    FILE* fout = fopen("sum.out","w");

    int n;
    fscanf(f,"%d",&n);
    for(int i = 2 ; i < 100001;i++)
    {
        primef[i] = true;
        tot[i] = i;
    }
    for(int i = 2 ; i < 100001;i++)
    if (primef[i])
    for(int j = i ; j < 100001;j+=i)
    {
        primef[j] = false;
        tot[j] = tot[j] *(i-1) / i;
    }

    FOR(i,n)
    {
        int a;
        fscanf(f,"%d\n",&a);
        fprintf(fout,"%d\n", 2*a*tot[a]);
    }
    fclose(fout);
    return 0;

}