Cod sursa(job #2774679)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 12 septembrie 2021 12:14:08
Problema Pascal Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
int n,d,c,i,p[5000003],q[5000003];
void C(int l,int v[])
{
    v[0]=0;
    int i,j;
    for(i=l;i<=n;i*=l)
        for(j=i;j<=n;j+=i)
            ++v[j];
    for(i=1;i<=n;++i)
        v[i]+=v[i-1];
}
int main()
{
    freopen("pascal.in","r",stdin),freopen("pascal.out","w",stdout),scanf("%d%d",&n,&d);
    if(d==2||d==3||d==5) {
        C(d,p);
        for(i=1;i<n;++i)
            if(p[n]-p[i]-p[n-i])
                ++c;
    } else if(d==4) {
        C(2,p);
        for(i=1;i<n;++i)
            if(p[n]-p[i]-p[n-i]>=2)
                ++c;
    } else {
        C(2,p),C(3,q);
        for(i=1;i<n;++i)
            if(p[n]-p[i]-p[n-i]&&q[n]-q[i]-q[n-i])
                ++c;
    }
    printf("%d",c);
    return 0;
}