Pagini recente » Cod sursa (job #136350) | Cod sursa (job #615566) | civilizatie | Cod sursa (job #1279451) | Cod sursa (job #1560928)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
int c2 , c3 , c5;
int main()
{
long long int n;
int d;
fin >> n >> d;
vector <int> exp2(n+3,0);
vector <int> exp3(n+3,0);
vector <int> exp5(n+3,0);
for ( int i = 1 ;i <= n ; i ++)
{
if(i % 2 == 0)
exp2[i] = 1 + exp2[i/2];
if (i % 3 == 0)
exp3[i] = 1 + exp3[i/3];
if(i % 5 == 0)
exp5[i] = 1 + exp5[i/5];
}
if(d == 2)
{
long long int rezultat = 0;
for( int i = 1; i < n ; i++)
{
c2 += exp2[n - i + 1] - exp2[i];
if(c2)
rezultat ++;
}
fout << rezultat;
fout.close();
return 0;
}
if(d == 3)
{
long long int rezultat = 0;
for ( int i = 1; i<n ;i++)
{
c3 += exp3[n-i+1] - exp3[i];
if(c3)
rezultat ++;
}
fout << rezultat ;
fout.close();
return 0;
}
if(d == 4)
{
long long int rezultat = 0;
for ( int i =1 ; i < n; i++)
{
c2 += exp2[n-i + 1] - exp2[i];
if(c2 >= 2)
rezultat ++;
}
fout << rezultat ;
fout.close();
return 0;
}
if( d == 5)
{
long long int rezultat = 0;
for ( int i = 1 ; i < n ;i++)
{
c5 += exp5[n-i+1] - exp5[i];
if(c5)
rezultat ++;
}
fout << rezultat ;
fout.close();
return 0;
}
if(d == 6)
{
long long int rezultat = 0;
for( int i = 1 ; i < n ;i++)
{
c2 += exp2[n-i+1] - exp2[i];
c3 += exp3[n-i+1] - exp3[i];
if(c2 && c3)
rezultat ++;
}
fout << rezultat;
fout.close();
return 0;
}
}