Pagini recente » Borderou de evaluare (job #215510) | Cod sursa (job #2501013) | Borderou de evaluare (job #2023402) | Borderou de evaluare (job #247072) | Cod sursa (job #2501007)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int r,d,i,f[6][5000010],a[6],b[6],sol,p2,p3,p5;
int main() {
fin>>r>>d;
//f[x][i]=exponentul lui x in dezvoltarea lui i
for (i=2;i<=r;i++) {
if (i%2==0)
f[2][i]=f[2][i/2]+1;
if (i%3==0)
f[3][i]=f[3][i/3]+1;
if (i%5==0)
f[5][i]=f[5][i/5]+1;
}
//C(r,i)=r!/(r-i)!*i! si la fiecare pas inmultim cu (r-i+1)!/i!
//daca p2,p3,p5 sunt > 0 la un pas, atunci numarul se imparte la 2,3,5 respectiv
switch(r) {
case 2: {
for (i=1;i<=r;i++) {
p2+=f[2][r-i+1]-f[2][i];
if (p2>0)
sol++;
}
}
case 3: {
for (i=1;i<=r;i++) {
p3+=f[3][r-i+1]-f[3][i];
if (p3>0)
sol++;
}
}
case 4: {
for (i=1;i<=r;i++) {
p2+=f[2][r-i+1]-f[2][i];
if (p2>1)
sol++;
}
}
case 5: {
for (i=1;i<=r;i++) {
p5+=f[5][r-i+1]-f[5][i];
if (p5>0)
sol++;
}
}
case 6: {
for (i=1;i<=r;i++) {
p2+=f[2][r-i+1]-f[2][i];
p3+=f[3][r-i+1]-f[3][i];
if (p2>0&&p3>0)
sol++;
}
}
}
fout<<sol;
return 0;
}