Problem:
Score : 200 points

Problem Statement

An integer N is a multiple of 9 if and only if the sum of the digits in the decimal representation of N is a multiple of 9.

Determine whether N is a multiple of 9.

Constraints

0 \leq N < 10^{200000}

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

If N is a multiple of 9, print Yes; otherwise, print No.

Sample Input 1

123456789

Sample Output 1

Yes

The sum of these digits is 1+2+3+4+5+6+7+8+9=45, which is a multiple of 9, so 123456789 is a multiple of 9.

Sample Input 2

0

Sample Output 2

Yes

Sample Input 3

31415926535897932384626433832795028841971693993751058209749445923078164062862089986280

Sample Output 3

No

Solution in C# (.NET Core 3.1.201) (judge verdict: Accepted)

using System;

using System.Linq;
class Program
{
    static void Main(string[] args)
    {
        //回答
        //Console.WriteLine(Math.Ceiling((double)N / X) * T);

        //整数の入力
        //int N = int.Parse(Console.ReadLine());

        // 複数の入力
        //string[] line = Console.ReadLine().Split(' ');
        //int N = int.Parse(line[0]);
        //int X = int.Parse(line[1]);
        //int T = int.Parse(line[2]);


        String N = Console.ReadLine();

        int sum = 0;
        for(int i =0;i< N.Length; i++)
        {
            //Console.WriteLine("sum : " + sum);
            //Console.WriteLine("N[i] : " + (N[i] - '0'));
            sum += N[i] - '0';

        }

        //Console.WriteLine("sum : " + sum);

        if (sum % 9 == 0)
        {
            Console.WriteLine("Yes");
        }
        else
        {
            Console.WriteLine("No");
        }



        //スペース区切りの整数の入力
        //string[] dates = Console.ReadLine().Split(' ');
        //string[] amounts = Console.ReadLine().Split(' ');

        //double date = double.Parse(input[0]);
        //double amount = double.Parse(input[1]);

        //double date = double.Parse(input[0]);
        //double amount = double.Parse(input[1]);

        //var L2 = L.Distinct().OrderBy(o => o);
        //var L2 = L.OrderBy(o => o).ToArray();

        //string input = Console.ReadLine();
        //int b = int.Parse(input[0]);
        //int c = int.Parse(input[1]);
        //文字列の入力
        //string s = Console.ReadLine();
        //出力




        //onsole.WriteLine(N);
        //Console.WriteLine(string.Join(" ", L));


        //for (int i = 1; i < N; i++)
        //{
        //    for (int j = i - 1; j > 0; j--)
        //    {
        //        if (amounts[i] >= amount)
        //        Console.WriteLine(double.Parse(amounts[i]));
        //    }
        //}

        //for (int i = 0; i < K; i++)
        //{
        //    if(D / 10  X)

        //    if(now > 0)
        //    {
        //        now -= D;
        //    }
        //    else
        //    {
        //        now += D;
        //    }

        //    //Console.WriteLine(now);
        //}

        //Console.WriteLine(Math.Abs(now));
    }
}