2163. Сообразим на троих!

 

К Василию приехали два его друга с отличной новостью: они выиграли в лотерею n рублей. Поскольку лотерейный билет был получен на сдачу во время общей закупки в магазине, то его принадлежность определить не удалось. Было решено разделить выигрыш поровну. Василий хотел бы узнать, можно ли честно разделить выигрыш.

 

Вход. Одно натуральное число n, количество знаков которого не превышает 255.

 

Выход. Вывести YES, если входное число делится на 3, и NOесли не делится.

 

Пример входа

Пример выхода

1234567890987654321

YES

 

 

РЕШЕНИЕ

математика – делимость чисел

 

Анализ алгоритма

Число делится на 3, если сумма его цифр делится на 3. Достаточно просуммировать цифры входной строки и проверить, делится ли полученная сумма на 3.

 

Реализация алгоритма

Читаем последовательно символы пока не дойдем до конца строки (символ \n). Суммируем цифры, им соответствующие, в переменной s. Например, символу 7’ соответствует цифра 7’ – ‘0’ = 7.

 

while(scanf("%c",&c), c != '\n')

  s += c - '0';

 

Если сумма цифр s делится на 3, то выигрыш можно разделить честно.

 

if (s % 3 == 0) printf("YES\n"); else printf("NO\n");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String s = con.nextLine();

    int sum = 0;

    for(int i = 0; i < s.length(); i++)

      sum += s.charAt(i) - '0';

    if (sum % 3  > 0)

      System.out.println("NO");

    else

      System.out.println("YES");

  }

}

 

Python реализация

 

s = str(input())

sum = 0

for ch in s:

  sum += int(ch)

if sum % 3 == 0:

  ans = "YES"

else:

  ans = "NO"

print(ans)