Cod sursa(job #1893607)

Utilizator alexmihaxPasca Mihai alexmihax Data 25 februarie 2017 20:16:27
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("sumdiv2.in");
ofstream g("sumdiv2.out");

int Q[1000000],ma[100000][2],P[100];

int sum_div(int x)
{   int sum=0;
    for(int i=1;i<=x/2;i++)if(x%i==0)sum=sum+i;
    sum=sum+x;
    return sum;
}
int main()
{ int n,a,b,maxB=0,minA=99999;
f>>n;
for(int i=1;i<=n;i++)
{   f>>a>>b;
    ma[i][1]=a;
    ma[i][2]=b;
    if(b>maxB)maxB=b;
    if(a<minA)minA=a;
}
    for(int i=minA;i<=maxB; i++) P[i]=sum_div(i);
    for(int j=1; j<=minA; j++)Q[minA]=Q[minA]+P[j];
    for(int i=minA+1;i<=maxB; i++)Q[i]=Q[i-1]+P[i];
    for(int i=1;i<=n;i++)
    {
        b=ma[i][2];
        a=ma[i][1];
        g<<Q[b]-Q[a-1]<<'\n';
    }


    return 0;
}