Задача.
Как известно число делится на 3, тогда и только тогда, когда сумма его цифр делится на 3. Проверить этот признак на примере заданного трехзначного числа.
Замечание. Теоретическое утверждение о признаке делимости предлагается проверить на примере любого вводимого числа. Признак считается доказанным, но не будет лишним поиск для него контрпримеров.
Тесты.
Ввод | Вывод | Комментарий |
321 | not refuted | В обоих случаях кратно 3. |
742 | not refuted | В обоих случаях не кратно 3. |
Код.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h> int main() { short x; //описание переменных bool mult1, mult2; printf("Enter x=\n"); scanf("%d",&x); //ввод числа mult1 = (x % 3 == 0); x=x/100+x/10%10+x%10; mult2 = (x % 3 == 0); if (mult1 == mult2) printf("not refuted"); //проверка признака else printf("refuted"); return 0; } |
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { int x; //описание переменных boolean mult1, mult2; System.out.printf("Enter x=\n"); Scanner sc = new Scanner(System.in); x = sc.nextInt(); mult1 = (x % 3 == 0); x=x/100+x/10%10+x%10; mult2 = (x % 3 == 0); if (mult1 == mult2) System.out.printf("not refuted"); //проверка признака else System.out.println("refuted"); } } |
Алгоритм.
- Проверяем кратно ли данное число 3-ем.
- Находим сумму цифр числа.
- Проверяем кратна ли сумма цифр 3-ем.
- Сравниваем результаты.
Для выполнения программы и проверки тестов можно воспользоваться следующей ссылкой(C++) или другой(Java).
Не нужно проверять корректность исходных данных.
Зачем столько пустых строк в конце текста?
Исправил
В общем программу можно упростить, например вместо
написать просто
Но тем не менее, засчитано, 10 баллов.
Засчитана Java версия.