Pagini recente » Cod sursa (job #534916) | Cod sursa (job #1373719) | Cod sursa (job #1374469) | Cod sursa (job #867065) | Cod sursa (job #10177)
Cod sursa(job #10177)
#include <stdio.h>
#include <string.h>
long x[1024],p[1024],x2[1024],p2[1024];
void trans(long m1,long v[],long y[])
{
memset(&v,0,sizeof(v));
for(long i=2;i<=m1;++i)
if(m1%i==0)
{
++v[0];
y[v[0]]=i;
while(m1%i==0)
{
++v[v[0]];
m1/=i;
}
}
if(m1!=1)
{
y[++v[0]]=m1;
++v[v[0]];
}
}
int ver()
{
for(int i=1;i<=p[0];++i)
if(p[i]^p2[i])
return 0;
else
if(x[i]-x2[i]<x2[i])
return 0;
return 2;
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
register long i,j,n,m,X=0,n1,m1;
scanf("%ld%ld",&n,&m);
m1=n+1;
n1=n>>1;
for(i=1;i<=n1;++i)
{
--m1;
trans(m1,x,p);
trans(i,x2,p);
X+=ver();
}
if(n&1)
{
--m1;
trans(m1,p,x);
trans(i,p2,x2);
if(ver())
++X;
}
printf("%ld\n",X);
return 0;
}