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 (GCC 9.2.1) (judge verdict: Accepted)

//ABC176_B
#include <stdio.h>
#include <string.h>

int main(){
	char n[200005];
	int len=0;
	int tmp=0;
	
	scanf("%s",n);
//	printf("%s",n);

	//文字列の長さ取得
	len = strlen(n);
//	printf("%d ",len);
	
	//一文字ずつ
	for(int i=0;i<len;i++){
//		printf("%c ",n[i]);
	//文字を整数に
		if(n[i] == '1'){
//		printf("1 ga nyuuryoku \n");
			tmp = tmp + 1;
		}
		if(n[i] == '2'){
			tmp = tmp + 2;
		}
		if(n[i] == '3'){
			tmp = tmp + 3;
		}
		if(n[i] == '4'){
			tmp = tmp + 4;
		}
		if(n[i] == '5'){
			tmp = tmp + 5;
		}
		if(n[i] == '6'){
			tmp = tmp + 6;
		}
		if(n[i] == '7'){
			tmp = tmp + 7;
		}
		if(n[i] == '8'){
			tmp = tmp + 8;
		}
		if(n[i] == '9'){
			tmp = tmp + 9;
		}
	}
	
//	printf("%d",tmp);

	//9の倍数か判断する。9で割って余りが0ならば
	if(tmp % 9 == 0){
		printf("Yes");
	}
	else printf("No");

	return 0;
}