Pagini recente » Cod sursa (job #2884092) | Cod sursa (job #2110456) | Rating UPT Igna Sendroiu Pacurariu (UPT_Raindrops) | Cod sursa (job #1179295) | Cod sursa (job #2500477)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int n,m,d,fact[6][5000001],i,j,jum,e2,e3,e5,cnt;
int main(){
fin>>n>>d;
if(d==1){
fout<<n;
return 0;
}
///calculam fact[n]
for(i=2;i<=n;i*=2)
fact[2][n]+=n/i;
for(i=3;i<=n;i*=3)
fact[3][n]+=n/i;
for(i=5;i<=n;i*=5)
fact[5][n]+=n/i;
m=n/2+n%2;
for(i=2;i<=m+1;i++){
j=i;
e2=e3=e5=0;
while(j%2==0)
e2++,j/=2;
while(j%3==0)
e3++,j/=3;
while(j%5==0)
e5++,j/=5;
fact[2][i]=fact[2][i-1]+e2;
fact[3][i]=fact[3][i-1]+e3;
fact[5][i]=fact[5][i-1]+e5;
}
cout<<"*";
/// linia n coloana i
if(d==2){
for(i=1;i<=n/2;i++){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>0)
cnt+=2;
}
i--;
if(n%2==0){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>0)
cnt--;
}
}
if(d==3){
for(i=1;i<=n/2;i++){
if(fact[3][n]-fact[3][i]-fact[3][n-i]>0)
cnt+=2;
}
i--;
if(n%2==0){
if(fact[3][n]-fact[3][i]-fact[3][n-i]>0)
cnt--;
}
}
if(d==5){
for(i=1;i<=n/2;i++){
if(fact[5][n]-fact[5][i]-fact[5][n-i]>0)
cnt+=2;
}
i--;
if(n%2==0){
if(fact[5][n]-fact[5][i]-fact[5][n-i]>0)
cnt--;
}
}
if(d==4){
for(i=1;i<=n/2;i++){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>1)
cnt+=2;
}
i--;
if(n%2==0){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>1)
cnt--;
}
}
if(d==6){
for(i=1;i<=n/2;i++){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>0 && fact[3][n]-fact[3][i]-fact[3][n-i]>0)
cnt+=2;
}
i--;
if(n%2==0){
if(fact[2][n]-fact[2][i]-fact[2][n-i]>0 && fact[3][n]-fact[3][i]-fact[3][n-i]>0)
cnt--;
}
}
for(i=1;i<=n;i++)
cout<<fact[2][i]<<" ";
fout<<cnt;
return 0;
}