Pagini recente » Cod sursa (job #3277670) | Cod sursa (job #2733605) | Cod sursa (job #879587) | Cod sursa (job #2863942) | Cod sursa (job #953139)
Cod sursa(job #953139)
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
void erst(vector<int>&);
inline long long sum(int x)
{
return x*(x+1)/2;
}
int main()
{
int t;
vector<int> p;
f>>t;
erst(p);
while(t--){
int x,a;
f>>x;
a=x;
vector<int> fct;
for(size_t i=0;i<p.size()&&x!=1;++i){
if(x%p[i]==0)
fct.push_back(p[i]);
while(x%p[i]==0)
x/=p[i];
}
long long s=sum(2*a);
for(size_t i=0;i<fct.size();++i)
s-=fct[i]*sum((2*a/fct[i]));
for(size_t i=0;i<fct.size();++i)
for(size_t j=i+1;j<fct.size();++j)
s+=fct[i]*fct[j]*sum(2*a/(fct[i]*fct[j]));
g<<s<<'\n';
}
return 0;
}
void erst(vector<int>& v)
{
vector<bool> ok(500,0);
for(int i=2;i<500;i++){
if(!ok[i]){
v.push_back(i);
for(int j=2;j*i<500;j++)
ok[i*j]=1;
}
}
}