помогите написать задачу на с++
Хулиганы Первый
и Второй очень не любят доску почёта своей школы. Поэтому они решили наглым
образом украсть оттуда школьную стенгазету, сделанную отличниками, и порвать на
части. Первый хулиган брал кусочек газеты и рвал его на 4 части, а Второй
хулиган – на 7. Однако очень скоро дежурные нашли N кусочков этой
газеты. Им стало интересно, все ли кусочки они нашли. Помогите им.

Дежурные так
старались, что упустить из виду они могли не более 2 кусочков.
Входные данные

Натуральное число N < 1018.

Выходные данные

Выведите
“Yes”, если все кусочки
найдены, и “No” – в
противном случае.

Пример
Вход
Выход

4
Yes

67
Yes

11
No

1

Ответы и объяснения

2013-11-02T07:53:01+04:00
Вот, правда немного запутано - не стал задумываться об элегантности кода. Алгоритм, вроде как, нашёл (N-1/b). 

#include <iostream>
using namespace std;
int main()
{
int n, b=3, x;
start:
setlocale (LC_ALL, "Russian");
cout << "Введите число собранных кусочков: ";
cin >> n;
x=n-1;
if (x%b==0)
cout << "Yes" << endl;
else
cout << "No" << endl;
goto start;
system ("pause");
}