Рубрики

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

По заданному числу задача состоит в том, чтобы определить, делится ли число на 9 или нет. Номер ввода может быть большим, и его невозможно сохранить, даже если мы используем long long int.

Примеры:

Input  : n = 69354
Output : Yes

Input  : n = 234567876799333
Output : No

Input  : n = 3635883959606670431112222
Output : No

Поскольку число ввода может быть очень большим, мы не можем использовать n% 9, чтобы проверить, делится ли число на 9 или нет, особенно в таких языках, как C / C ++. Идея основана на следующем факте.

A number is divisible by 9 if sum of its digits is divisible by 9.

Иллюстрация:

For example n = 9432
Sum of digits = 9 + 4 + 3 + 2
             = 18
Since sum is divisible by 9,
answer is Yes.

Как это работает?

Let us consider 1332, we can write it as
1332 = 1*1000 + 3*100 + 3*10 + 2

The proof is based on below observation:
Remainder of 10i divided by 9 is 1
So powers of 10 only results in remainder 1 
when divided by 9.

Remainder of "1*1000 + 3*100 + 3*10 + 2"
divided by 9 can be written as : 
1*1 + 3*1 + 3*1 + 2 = 9
The above expression is basically sum of
all digits.

Since 9 is divisible by 9, answer is yes.

Ниже приведена реализация вышеуказанной идеи.

C ++

// C ++ программа, чтобы найти, делится ли число на
// 9 или нет
#include<bits/stdc++.h>

using namespace std;

  
// Функция, чтобы найти это число делится на 9 или нет

int check(string str)

{

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

    int n = str.length();

    int digitSum = 0;

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

        digitSum += (str[i]-'0');

  

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

    return (digitSum % 9 == 0);

}

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

int main()

{

    string str = "99333";

    check(str)?  cout << "Yes" : cout << "No ";

    return 0;

}

Джава

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

class IsDivisible

{

    // Функция, чтобы найти это число

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

    static boolean check(String str)

    {

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

        int n = str.length();

        int digitSum = 0;

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

            digitSum += (str.charAt(i)-'0');

       

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

        return (digitSum % 9 == 0);

    }

  

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

    public static void main (String[] args) 

    {

        String str = "99333";

        if(check(str))

            System.out.println("Yes");

        else

            System.out.println("No");

    }

python3

# Python 3 программа для
# найти номер
# делится на
№ 9 или нет

  
# Функция, чтобы найти это
число делится на 9
# или не

def check(st) :

  

    # Вычислить сумму цифр

    n = len(st)

    digitSum = 0

      

    for i in range(0,n) :

        digitSum = digitSum + (int)(st[i])

  

    # Проверьте, если сумма цифр

    # делится на 9.

    return (digitSum % 9 == 0)

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

st = "99333"

  

if(check(st)) :

    print("Yes")

else

    print("No")

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

C #

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

using System;

  

class GFG {

      

    // Функция, чтобы найти это число

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

    static bool check(String str)

    {

          

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

        int n = str.Length;

        int digitSum = 0;

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

            digitSum += (str[i] - '0');

      

        // Проверяем, равна ли сумма цифр

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

        return (digitSum % 9 == 0);

    }

  

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

    public static void Main () 

    {

        String str = "99333";

        if(check(str))

            Console.Write("Yes");

        else

            Console.Write("No");

    }

  
// Этот код предоставлен
// нитин митталь.

PHP

<?php
// PHP программа для поиска номера
// делится на 9 или нет

  
// Функция, чтобы найти это
// число делится на 9 или нет

function check($str)

{

      

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

    $n = strlen($str);

    $digitSum = 0;

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

        $digitSum += ($str[$i] - '0');

  

    // Проверяем, если сумма цифр

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

    return ($digitSum % 9 == 0);

}

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

$str = "99333";

$x = check($str) ? "Yes" : "No ";

echo($x);

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


Выход:

Yes

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

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

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

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

0.00 (0%) 0 votes