Pagini recente » Clasament pregatire_spartanica_sh | Cod sursa (job #236218) | Monitorul de evaluare | Statistici Cazan-Zarzalin (Black00Viper) | Cod sursa (job #520565)
Cod sursa(job #520565)
#include<stdio.h>
FILE *fin,*fout;
int t,d,r,k,f[4][5000001],i,v[3][10],nr,ok,j,p,exp;
int power(int a,int b){
int nr=0;
while(a%b==0){
nr++;
a=a/b;
}
return nr;
}
int main(){
fin=fopen("pascal.in","r");
fout=fopen("pascal.out","w");
fscanf(fin,"%d %d",&r,&d);
k=2;
t=d;
p=0;
while(k*k<=t){
nr=0;
while(t%k==0){
t=t/k;
nr++;
}
if(nr!=0){
p++;
v[1][p]=k;
v[2][p]=nr;
}
k++;
}
if(t!=1){
p++;
v[1][p]=t;
v[2][p]=1;
}
for(i=1;i<=r;i++){
for(j=1;j<=p;j++){
f[j][i]=f[j][i-1]+power(i,v[1][j]);
}
}
nr=0;
for(i=1;i<=r;i++){
ok=1;
for(j=1;j<=p;j++){
exp=f[j][r]-f[j][i]-f[j][r-i];
if(exp<v[2][j]){
ok=0;
break;
}
}
if(ok==1){nr++;}
}
fprintf(fout,"%d",nr);
return 0;}