Pagini recente » Cod sursa (job #182006) | Cod sursa (job #2181797) | Cod sursa (job #1842721) | Cod sursa (job #274354) | Cod sursa (job #830951)
Cod sursa(job #830951)
#include<fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
long long p,m[2][5000001],i,c,r,d,x[3],k,nr,j,nr1,dv;
int main(){
f>>r>>d; dv=d;
k=2;p=-1;
while(k*k<=d){
nr=0;
while(d%k==0)
{nr++;d=d/k;}
if(nr!=0)
x[++p]=k;
k++;}
if(d>1) x[++p]=d;
int t=p;
nr1=nr;
if(nr==0)nr1=1;
for(j=1;j<=r;j++){
p=x[0];
nr=0;
c=j;
while(c%p==0){
nr++; c=c/p;}
m[0][j]=m[0][j-1]+nr;
if(t==1)
{ p=x[1];nr=0;
c=j;
while(c%p==0){
nr++;c=c/p;}
m[1][j]=m[1][j-1]+nr;
}
}
nr=0;
for(i=1;i<=r;i++){
if(dv==4)
{if(m[0][r]-m[0][i]-m[0][r-i]>1)
nr++;
} else
if(dv==6){
if(m[1][r]-m[1][i]-m[1][r-i]>0&&m[0][r]-m[0][i]-m[0][r-i]>0)
nr++;}
else{
if(m[0][r]-m[0][i]-m[0][r-i]>0)
nr++;
}}
g<<nr;
return 0;
}