6. n!程式設計

using System.Numerics;

while (true)
{
    Console.Write("n=");
    int n = int.Parse(Console.ReadLine());

    BigInteger ans = new BigInteger(1);
    for (int i = 2; i <= n; i++)
        ans *= i;

    Console.WriteLine(ans.ToString());

    var backup = ans;

    int sum = 0;
    while (ans != 0)
    {
        sum += (int)(ans % 10);
        ans /= 10;
    }
    Console.WriteLine(sum.ToString());

    int k = 2;
    int s = 0;
    ans = backup;
    while (ans != 1)
    {
        if (isPrime(k) && ans % k == 0)
        {
            ans /= k;
            s++;
        }
        else k++;
    }
    Console.WriteLine(s);

    Console.WriteLine();
}

bool isPrime(int n)
{
    for (int i = 2; i < Math.Sqrt(n); i++)
    {
        if (n % i == 0 && n != i) return false;
    }
    return true;
}

Last updated