Рубрики

Проверьте, делится ли большее число на 36

Для заданного числа проверьте, делится ли данное число на 36 или нет. Число может быть очень большим и может не соответствовать ни одному числовому типу данных (int, long int, float и т. Д.).

Примеры:

Input : 72
Output : Yes

Input : 244
Output : No

Input : 11322134
Output : No

Input : 92567812197966231384
Output : Yes

Число делится на 36, если число делится на 4 и 9

  1. Число делится на 4, если число, образованное его двумя последними цифрами, делится на 4
  2. Число делится на 9, если сумма цифр числа делится на 9

Ниже приведена реализация, основанная на представленной выше идее.

C ++

// Реализация C ++ для проверки делимости на 36
#include <bits/stdc++.h>

using namespace std;

  
// Функция для проверки, является ли число
// делится на 36 или нет
string divisibleBy36(string num)
{

    int l = num.length();

  

    // Нулевое число не может

    // делится на 36

    if (l == 0)

        return "No";

  

    // однозначный номер кроме

    // 0 не делится на 36

    if (l == 1 && num[0] != '0')

        return "No";

  

    // номер, образованный последними 2 цифрами

    int two_digit_num = (num[l-2] - '0')*10 +

                        (num[l-1] - '0') ;

  

    // если число не делится на 4

    if (two_digit_num%4 != 0)

        return "No";

  

    // число делится на 4 вычисляем

    // сумма цифр

    int sum = 0;

    for (int i=0; i<l; i++)

        sum += (num[i] - '0');

  

    // сумма цифр не делится на 9

    if (sum%9 != 0)

        return "No";

  

    // число делится на 4 и 9

    // следовательно, число делится на 36

    return "Yes";

}

  
// Драйвер программы

int main()

{

    string num = "92567812197966231384";

    cout << divisibleBy36(num);

    return 0;

}

Джава

// Java-программа для определения, является ли число
// делится на 36 или нет

class IsDivisible

{

    // Функция для проверки, является ли число

    // делится на 36 или нет

    static boolean divisibleBy36(String num)

    {

        int l = num.length();

       

        // Нулевое число не может

        // делится на 36

        if (l == 0)

            return false;

       

        // однозначный номер кроме

        // 0 не делится на 36

        if (l == 1 && num.charAt(0) != '0')

            return false;

       

        // номер, образованный последними 2 цифрами

        int two_digit_num = (num.charAt(l-2) - '0')*10 +

                            (num.charAt(l-1) - '0') ;

       

        // если число не делится на 4

        if (two_digit_num%4 != 0)

            return false;

       

        // число делится на 4 вычисляем

        // сумма цифр

        int sum = 0;

        for (int i=0; i<l; i++)

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

       

        // сумма цифр не делится на 9

        if (sum%9 != 0)

            return false;

       

        // число делится на 4 и 9

        // следовательно, число делится на 36

        return true;

    }

  

    // основная функция

    public static void main (String[] args) 

    {

        String num = "92567812197966231384";

        if(divisibleBy36(num))

            System.out.println("Yes");

        else

            System.out.println("No");

    }

python3

# Реализация Python 3 для
# проверить делимость на 36

  
# Функция, чтобы проверить, является ли
# число делится на
№ 36 или нет

def divisibleBy36(num) :

    l = len(num)

  

    # нулевой номер не может

    # делится на 36

    if (l == 0) :

        return ("No")

  

    # однозначный номер другой

    # чем 0 не делится

    # 36

    if (l == 1 and num[0] != '0') :

        return ("No")

  

    # число, образованное

    # последние 2 цифры

    two_digit_num = (((int)(num[l - 2])) *

                    10 +(int)(num[l - 1]))

  

    # если номер не

    # делится на 4

    if (two_digit_num%4 != 0) :

        return "No"

  

    # число делится

    # на 4 рассчитать сумму

    Количество цифр

    sm = 0

    for i in range(0,l) :

        sm = sm + (int)(num[i])

  

    # сумма цифр не

    # делится на 9

    if (sm%9 != 0) :

        return ("No")

  

    # Число делится

    # на 4 и 9, следовательно,

    # число делится

    # 36

    return ("Yes")

  
# Драйверная программа

num = "92567812197966231384"

print(divisibleBy36(num))

  
# Этот код предоставлен Никитой Тивари.

C #

// C # программа для поиска номера
// делится на 36 или нет

using System;

  

class GFG {

      

    // Функция для проверки

    // число делится на

    // 36 или нет

    static bool divisibleBy36(String num)

    {

        int l = num.Length;

      

        // Нулевое число не может

        // делится на 36

        if (l == 0)

            return false;

      

        // однозначный номер кроме

        // 0 не делится на 36

        if (l == 1 && num[0] != '0')

            return false;

      

        // число, сформированное последним

        // 2 цифры

        int two_digit_num = (num[l-2] - '0') * 10

                             + (num[l-1] - '0') ;

      

        // если число не делится на 4

        if (two_digit_num % 4 != 0)

            return false;

      

        // число делится на 4 вычисляем

        // сумма цифр

        int sum = 0;

        for (int i = 0; i < l; i++)

            sum += (num[i] - '0');

      

        // сумма цифр не делится на 9

        if (sum % 9 != 0)

            return false;

      

        // число делится на 4 и 9

        // следовательно, число делится на 36

        return true;

    }

  

    // основная функция

    public static void Main () 

    {

        String num = "92567812197966231384";

          

        if(divisibleBy36(num))

            Console.Write("Yes");

        else

            Console.Write("No");

    }

  
// Этот код предоставлен parashar.

PHP

<?php
// Реализация PHP для
// проверяем делимость на 36

  
// Функция для проверки, является ли число
// делится на 36 или нет

function divisibleBy36($num)

{

    $l = strlen($num);

  

    // Нулевое число не может

    // делится на 36

    if ($l == 0)

        return "No";

  

    // однозначный номер кроме

    // 0 не делится на 36

    if ($l == 1 && $num[0] != '0')

        return "No";

  

    // число, образованное

    // последние 2 цифры

    $two_digit_num = ($num[$l - 2] - '0') * 10 +

                            ($num[$l - 1] - '0') ;

  

    // если номер не

    // делится на 4

    if ($two_digit_num%4 != 0)

        return "No";

  

    // число делится на 4

    // вычисляем сумму цифр

    $sum = 0;

    for ($i = 0; $i < $l; $i++)

        $sum += ($num[$i] - '0');

  

    // сумма цифр не

    // делится на 9

    if ($sum % 9 != 0)

        return "No";

  

    // число делится на 4 и 9

    // следовательно, число делится на 36

    return "Yes";

}

  
// Код драйвера

$num = "92567812197966231384";

echo(divisibleBy36($num));

  
// Этот код предоставлен Ajit.
?>

Выход:

Yes

Сложность времени: O (n)

Эта статья предоставлена Аюшем Джаухари . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Проверьте, делится ли большее число на 36

0.00 (0%) 0 votes