Tienes una función f(n) = (n 1 + n 2 + n 3 + n 4 ), tienes que encontrar el valor de f(n) mod 5 para cualquier valor dado de entero positivo n.
Nota: n puede ser lo suficientemente grande, tal que f(n) > 10 18 .
Ejemplos:
Input : n = 4 Output : 0 Explanation : f(4) = 4 + 16 + 64 + 256 = 330, f(4) mod 5 = 330 mod 5 = 0. Input : n = 1 Output : 4 Explanation : f(1) = 1 + 1 + 1 + 1 = 4, f(1) mod 5 = 4.
En primer lugar, para resolver este enfoque, puede encontrar el valor de (n 1 + n 2 + n 3 + n 4 ) mod 5 directamente con la ayuda de cualquier función de potencia y operador de módulo.
Pero para el valor más grande de n, su resultado será incorrecto porque para un valor de n grande de f (n) puede salirse del rango de long long int en ese caso, debe optar por otra forma eficiente.
Para resolver esta pregunta, hagamos una pequeña derivación matemática para f(n).
f(n) = (n1 + n2 + n3 + n4) = (n) (n+1) (n2+1) Now, for finding f(n) mod 5 we must take care of unit digit of f(n) only, also as f(n) mod 5 is dependent on n%5, (n+1)%5 & (n2+1)%5, if any of these three result in zero then our whole result is 0. So, if n = 5, 10, .. 5k then n mod 5 = 0 hence f(n) mod 5 = 0. if n = 4, 9, .., (5k-1) then (n+1) mod 5 = 0 hence f(n) mod 5 = 0. if n = 3, 8, 13..., (5k-2) f(n) mod 5 = (3 * 4 * 10) mod 5 = 0 if n = 2, 7, 12..., (5k-3) f(n) mod 5 = (2 * 3 * 5) mod 5 = 0. if n = 1, 6, 11..., (5k-4) f(n) mod 5 = (1 * 2 * 2) mod 5 = 4.
Después del análisis anterior, podemos ver que si n tiene la forma 5k+1 o, por ejemplo, 5k-4, entonces f(n) mod 5 = 4, de lo contrario f(n) = 0.
IE if(n%5 == 1 ) resultado = 4, de
lo contrario resultado = 0.
C++
// finding the value of f(n) mod 5 for given n. #include <bits/stdc++.h> using namespace std; // function for f(n) mod 5 int fnMod(int n) { // if n % 5 == 1 return 4 if (n % 5 == 1) return 4; // else return 0 else return 0; } // driver program int main() { int n = 10; cout << fnMod(n) << endl; n = 11; cout << fnMod(n) << endl; return 0; }
Java
// Java code to finding the value // of f(n) mod 5 for given n. import java.io.*; class GFG { // function for f(n) mod 5 static int fnMod(int n) { // if n % 5 == 1 return 4 if (n % 5 == 1) return 4; // else return 0 else return 0; } // Driver program public static void main (String[] args) { int n = 10; System.out.println(fnMod(n)); n = 11; System.out.println(fnMod(n)); } } // This code is contributed by vt_m.
Python3
# Python3 program to find the value # of f(n) mod 5 for given n. # Function for f(n) mod 5 def fnMod(n): # if n % 5 == 1 return 4 if (n % 5 == 1): return 4 # else return 0 else: return 0 # Driver Code n = 10 print(fnMod(n)) n = 11 print(fnMod(n)) # This code is contributed by Smitha Dinesh Semwal
C#
// Code for finding the value // of f(n) mod 5 for given n. using System; class GFG { // function for f(n) mod 5 static int fnMod(int n) { // if n % 5 == 1 return 4 if (n % 5 == 1) return 4; // else return 0 else return 0; } // Driver program public static void Main() { int n = 10; Console.WriteLine(fnMod(n)); n = 11; Console.WriteLine(fnMod(n)); } } // This code is contributed by vt_m.
PHP
<?php // PHP program for finding the // value of f(n) mod 5 for given n. // function for f(n) mod 5 function fnMod($n) { // if n % 5 == 1 return 4 if ($n % 5 == 1) return 4; // else return 0 else return 0; } // Driver Code $n = 10; echo fnMod($n),"\n"; $n = 11; echo fnMod($n) ; // This code is contributed by anuj_67. ?>
Javascript
<script> // JavaScript program to finding the value // of f(n) mod 5 for given n. // function for f(n) mod 5 function fnMod(n) { // if n % 5 == 1 return 4 if (n % 5 == 1) return 4; // else return 0 else return 0; } // Driver Code let n = 10; document.write(fnMod(n) + "<br/>"); n = 11; document.write(fnMod(n) + "<br/>"); // This code is contributed by chinmoy1997pal. </script>
Producción :
0 4
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA