Cod sursa(job #830951)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 7 decembrie 2012 22:02:01
Problema Pascal Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#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;
}