Pagini recente » Monitorul de evaluare | Cod sursa (job #1125940) | Cod sursa (job #986656) | Monitorul de evaluare | Cod sursa (job #1986579)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
long int n;
long int fact(int k)
{
if(k==0)
return 1;
else
{
return fact(k-1)*k;
}
}
int prim(int x)
{
for(long int i=2; i<=x/2; i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
f>>n;
if(n==1)
g<<1;
else if(n==2)
g<<2;
else
{
long int rez = fact(n)/fact(n-2);
rez++;
long int p=2;
long int sum=0;
while(p<n)
{
int c=0;
for(long int i=p; i<=n; i++)
if(i%p==0)
c++;
sum=sum+(c*(c-1))/2;
p++;
while(!prim(p))
p++;
}
sum=sum*2;
g<<rez-sum;
}
}