Подільність на цифри#8622

Подільність на цифри (Розбір)

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

Знайдемо цифри числа n = a, b, c, d. Жодна з цих цифр не повинна дорівнювати нулю, оскільки на 0 ділити не можна. Наприклад, для числа 4000 або 3405 відповідь буде “NO”.

Для вирішення задачі спочатку слід перевірити, що жодна з цифр числа не дорівнює 0, а також те що ділиться на a, b, c і .

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

Читаємо вхідне значення .

scanf("%d", &n);

Нехай n = a, b, c, d. Знаходимо цифри a, b, c, d числа .

a = n / 1000;
b = n / 100 % 10;
c = n / 10 % 10;
d = n % 10;

Перевіряємо, не дорівнює жодна з цифр числа нулю. Перевіряємо, чи ділиться число на a, b, c і .

if (a != 0 && b != 0 && c != 0 && d != 0 &&
    n % a == 0 && n % b == 0 && n % c == 0 && n % d == 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);
        int n = con.nextInt();
        int a = n / 1000;
        int b = n / 100 % 10;
        int c = n / 10 % 10;
        int d = n % 10;
        if (a != 0 && b != 0 && c != 0 && d != 0 &&
            n % a == 0 && n % b == 0 && n % c == 0 && n % d == 0)
            System.out.println("YES");
        else
            System.out.println("NO");
        con.close();
    }
}

Python реалізація

n = int(input())
a = n // 1000
b = n // 100 % 10
c = n // 10 % 10
d = n % 10
if a != 0 and b != 0 and c != 0 and d != 0 and n % a == 0 and n % b == 0 and n % c == 0 and n % d == 0:
    print("YES")
else:
    print("NO")