Dado un número, la tarea es dividir el número por 3. El número de entrada puede ser grande y puede que no sea posible almacenarlo incluso si usamos long long int.
Ejemplos:
Input : n = 769452 Output : Yes Input : n = 123456758933312 Output : No Input : n = 3635883959606670431112222 Output : Yes
Dado que el número de entrada puede ser muy grande, no podemos usar n % 3 para verificar si un número es divisible por 3 o no, especialmente en lenguajes como C/C++. La idea se basa en el siguiente hecho.
Un número es divisible por 3 si la suma de sus dígitos es divisible por 3.
Ilustración:
For example n = 1332 Sum of digits = 1 + 3 + 3 + 2 = 9 Since sum is divisible by 3, answer is Yes.
¿Como funciona esto?
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 3 is 1 So powers of 10 only result in value 1. Remainder of "1*1000 + 3*100 + 3*10 + 2" divided by 3 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 3, answer is yes.
A continuación se muestra la implementación del hecho anterior:
C++
// C++ program to find if a number is divisible by // 3 or not #include<bits/stdc++.h> using namespace std; // Function to find that number divisible by 3 or not int check(string str) { // Compute sum of digits int n = str.length(); int digitSum = 0; for (int i=0; i<n; i++) digitSum += (str[i]-'0'); // Check if sum of digits is divisible by 3. return (digitSum % 3 == 0); } // Driver code int main() { string str = "1332"; check(str)? cout << "Yes" : cout << "No "; return 0; }
Java
// Java program to find if a number is // divisible by 3 or not class IsDivisible { // Function to find that number // divisible by 3 or not static boolean check(String str) { // Compute sum of digits int n = str.length(); int digitSum = 0; for (int i=0; i<n; i++) digitSum += (str.charAt(i)-'0'); // Check if sum of digits is // divisible by 3. return (digitSum % 3 == 0); } // main function public static void main (String[] args) { String str = "1332"; if(check(str)) System.out.println("Yes"); else System.out.println("No"); } }
Python3
# Python program to find if a number is # divisible by 3 or not # Function to find that number # divisible by 3 or not def check(num) : # Compute sum of digits digitSum = 0 while num > 0 : rem = num % 10 digitSum = digitSum + rem num = num / 10 # Check if sum of digits is # divisible by 3. return (digitSum % 3 == 0) # main function num = 1332 if(check(num)) : print ("Yes") else : print ("No") # This code is contributed by Nikita Tiwari.
C#
// C# program to find if a number is // divisible by 3 or not using System; class GFG { // Function to find that number // divisible by 3 or not static bool check(string str) { // Compute sum of digits int n = str.Length; int digitSum = 0; for (int i = 0; i < n; i++) digitSum += (str[i] - '0'); // Check if sum of digits is // divisible by 3. return (digitSum % 3 == 0); } // main function public static void Main () { string str = "1332"; if(check(str)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by vt_m.
PHP
<?php // PHP program to find if a // number is divisible by // 3 or not // Function to find that // number divisible by 3 or not function check($str) { // Compute sum of digits $n = strlen($str); $digitSum = 0; for ($i = 0; $i < $n; $i++) $digitSum += ($str[$i] - '0'); // Check if sum of digits // is divisible by 3. return ($digitSum % 3 == 0); } // Driver code $str = "1332"; $x = check($str) ? "Yes" : "No "; echo($x); // This code is contributed by Ajit. ?>
Javascript
<script> // Javascript program to find if a // number is divisible by // 3 or not // Function to find that // number divisible by 3 or not function check(str) { // Compute sum of digits let n = str.length; let digitSum = 0; for (let i = 0; i < n; i++) digitSum += (str[i] - '0'); // Check if sum of digits // is divisible by 3. return (digitSum % 3 == 0); } // Driver code let str = "1332"; let x = check(str) ? "Yes" : "No "; document.write(x); // This code is contributed by _saurabh_jaiswal. </script>
Yes
Complejidad de tiempo : O (logn), donde n es el número dado.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.
Método 2: comprobar que el número dado es divisible por 3 o no mediante el operador de división de módulo «%».
Python3
# Python code # To check whether the given number is divisible by 3 or not #input n=769452 # the above input can also be given as n=input() -> taking input from user # finding given number is divisible by 3 or not if int(n)%3==0: print("Yes") else: print("No") # this code is contributed by gangarajula laxmi
C#
using System; public class GFG{ static public void Main (){ //input long n = 769452; // the above input can also be given as n=input() -> taking input from user // finding given number is divisible by 7 or not if (n % 3 == 0) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by laxmigangarajula03
Javascript
<script> // JavaScript code for the above approach // To check whether the given number is divisible by 3 or not //input var n = 769452 // finding given number is divisible by 3 or not if (n % 3 == 0) document.write("Yes") else document.write("No") // This code is contributed by Potta Lokesh </script>
Yes
Este artículo es una contribución de DANISH_RAZA . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA