Uva 324 - Factorial Frequencies

/*

Uva 324 - Factorial Frequencies

Verdict:: Accepted

Time: 0.078

*/

import java.util.*;
import java.math.*;

class Main
{
    public static void main (String[] args)
    {
        Scanner in = new Scanner (System.in);
        int n;
        //BigInteger f=BigInteger.ONE;
        while(in.hasNext())
        {
            n = in.nextInt();
            if (n==0) break;
            int len=0,zero=0,one=0,two=0,three=0,four=0,five=0,six=0,seven=0,eight=0,nine=0;
            BigInteger a,b,p=BigInteger.valueOf(10),t;
            BigInteger fact[]=new BigInteger[850];
            //int fact[]=new int [850];
            BigInteger f=BigInteger.ONE;
            for (int i=1;i<=n;i++)
            {
                f=f.multiply(BigInteger.valueOf(i));
            }
            //System.out.print(f);
            a=f; b=f;
            while(a!=BigInteger.ZERO)
            {
                a=a.mod(p);
                //fact[len++]=a;
                if (a.equals(BigInteger.valueOf(0))) zero++;
                else if (a.equals(BigInteger.valueOf(1))) one++;
                else if (a.equals(BigInteger.valueOf(2))) two++;
                else if (a.equals(BigInteger.valueOf(3)))three++;
                else if (a.equals(BigInteger.valueOf(4)))four++;
                else if (a.equals(BigInteger.valueOf(5)))five++;
                else if (a.equals(BigInteger.valueOf(6)))six++;
                else if (a.equals(BigInteger.valueOf(7)))seven++;
                else if (a.equals(BigInteger.valueOf(8)))eight++;
                else if (a.equals(BigInteger.valueOf(9)))nine++;
                b=b.divide(p);
                a=b;
            }
           
            //for (int i=0;i<len;i++) System.out.print(fact[i]+" ");
            /*for (int i=0;i<len;i++)
            {
                if (fact[i]==BigInteger.ZERO)zero++;
                else if (fact[i]==BigInteger.ONE)one++;
                else if (fact[i]==BigInteger.TWO)two++;
                else if (fact[i]==BigInteger.THREE)three++;
                else if (fact[i]==BigInteger.vlauOf(4))four++;
            }
           
            System.out.println(" (0) ");
            System.out.print(zero);*/

            System.out.println(n+"!"+" --");
            System.out.println(" (0) "+zero+" (1) "+one+" (2) "+two+" (3) "+three+" (4) "+four+"\n"+" (5) "+five+" (6) "+six+" (7) "+seven+" (8) "+eight+" (9) "+nine);
        }
    }
}

Comments

Popular posts from this blog

SPOJ-CMG - Collecting Mango

LightOJ 1009 - Back to Underworld

LeetCode Palindrome Number