제출 #13632

#제출 시각아이디문제언어결과실행 시간메모리
13632baneling100팩토리얼 세제곱들의 합 (YDX14_fact)C++98
0 / 1
0 ms1084 KiB
#include <stdio.h>

int N, K, Fact=1, Zero, Ans1=1, Ans2;
int Table[10][4]={{},{0,1,1,1},{0,2,4,8},{0,3,9,7},{0,4,6,4},{0,5,5,5},{0,6,6,6},{0,7,9,3},{0,8,4,2},{0,9,1,9}};

int main(void) {

    int i;

    scanf("%d %d",&N,&K);
    if(K)
        for(i=1 ; i<=N ; i++) {
            Fact*=i;
            while(!(Fact%10)) Fact/=10, Zero++;
            Fact%=10;
            if(Ans2>K*Zero) Ans2=K*Zero, Ans1=Table[Fact][K];
            else if(Ans2==K*Zero) {
                Ans1+=Table[Fact][K];
                if(Ans1==10) Ans1=1, Ans2++;
                Ans1%=10;
            }
        }
    else {
        Ans1=N+1;
        while(!(Ans1%10)) Ans1/=10;
        Ans1%=10;
    }
    printf("%d",Ans1);
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...