Pagini recente » Cod sursa (job #2988219) | Cod sursa (job #254801) | Cod sursa (job #376274) | Cod sursa (job #138498)
Cod sursa(job #138498)
#include <stdio.h>
#include <math.h>
long r, d, sol, v[9], t2, t3, t5, i;
long cuprinde(long num, long y) {
long p = 0;
if( num == 0)
return 0;
while (num % y == 0 ) {
num /= y;
++p;
}
return p;
}
int main() {
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%ld%ld", &r, &d);
if (d == 2) v[2] = 1;
if (d == 3) v[3] = 1;
if (d == 4) v[2] = 2;
if (d == 5) v[5] = 1;
if (d == 6) {
v[2] = 1;
v[3] = 1;
}
t2 = 0;t3 = 0;t5 = 0;
for (i = r; i >= 1; --i) {
if (t2 >= v[2] && t3 >= v[3] && t5 >= v[5]) {
++sol;
}
long j = i;
if(j){
while( j % 2 == 0)
{
j/=2;t2++;
}
while( j % 3 == 0)
{
j/=3;t3++;
}
while( j % 5 == 0)
{
j/=5;t5++;
}
}
j = r- i +1;
if(j){
while( j % 2 == 0)
{
j/=2;t2--;
}
while( j % 3 == 0)
{
j/=3;t3--;
}
while( j % 5 == 0)
{
j/=5;t5--;
}
}
}
printf("%ld\n", sol);
return 0;
}