Pagini recente » Cod sursa (job #2238289) | Cod sursa (job #384670) | Cod sursa (job #35714) | Cod sursa (job #1181785) | Cod sursa (job #808740)
Cod sursa(job #808740)
#include <iostream>
#include <stdio.h>
#include <math.h>
#define SIZE_MAX 1000000
using namespace std;
int main()
{
FILE *input = fopen("sumdiv2.in","r");
FILE *output = fopen("sumdiv2.out","w");
int n;
fscanf(input,"%d",&n);
int maxim = -1;
for (int i=0;i<2*n;i++)
{
int x;
fscanf(input,"%d",&x);
if (x > maxim) maxim = x;
}
long long sume[maxim];
sume[1] = 1;
for (int i=2;i<=maxim;i++)
{
int div = 2;
int cpy = i;
int nr = 0;
long long suma = 1;
while (cpy != 1)
{
nr = 0;
while (cpy % div == 0)
{
cpy /= div;
nr++;
}
if (nr != 0)
{
suma *= ( pow(div,nr+1) -1 ) / (div- 1);
}
div++;
}
sume[i] = suma + sume[i-1];
}
fclose(input);
FILE *file = fopen("sumdiv2.in","r");
fscanf(file,"%d",&n);
for (int i=0;i<n;i++)
{
int x;
int y;
fscanf(file,"%d%d",&x,&y);
fprintf(output,"%lld\n",sume[y]-sume[x-1]);
}
fclose(file);
fclose(output);
cout << "Hello world!" << endl;
return 0;
}