Pagini recente » Cod sursa (job #618813) | Cod sursa (job #543029) | Cod sursa (job #932054) | Cod sursa (job #1487945) | Cod sursa (job #1829255)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("fractii.in");
ofstream cout("fractii.out");
vector <int> dv(int x) //divizori
{
int i=2;
vector <int> a;
while (x>1)
{
if (x % i == 0)
{
if (a.size()==0 || a[a.size()-1]!=i) a.push_back(i);
x/=i;
}
if (x % i !=0) i++;
}
return a;
}
main()
{
int n,x,c;
vector <int> a;
cin >> n;
c=n;
for (int i=2; i<=n; i++)
{
a=dv(i);
x=n;
for (int j=a.size()-1; j>=0 && x>0; j--)
x-=x/a[j];
//if (a.size()>1) cout << i << ' '<< x << endl;
c+=x;
}
cout << c;
}