给定一个数字,任务是检查数字是否可以被5整除。即使我们使用long long int,输入数字也可能很大,并且可能无法存储。
例子:
Input : n = 56945255
Output : Yes
Input : n = 1234567589333150
Output : Yes
Input : n = 3635883959606670431112222
Output : No
由于输入数字可能很大,因此我们不能使用n%5来检查数字是否可以被5整除,尤其是在C / C++之类的语言中。这个想法是基于以下事实。
A number is divisible by 5 if its
digits last digit will be 0 or 5 .
插图:
For example, let us consider 769555
Number formed by last digit is = 5
Since 5 is divisible by 5 , answer is YES.
这是如何运作的?
Let us consider 5335, we can write it as
5335 = 5*1000 + 3*100 + 3*10 + 5
The proof is based on below observation:
Remainder of 10i divided by 5 is 0 if i greater
than or equal to one. Note than 10, 100, 1000,
... etc lead to remainder 0 when divided by 5.
So remainder of " 5*1000 + 3*100 +
3*10 + 5" divided by 5 is equivalent to remainder
of following :
0 + 0 + 0 + 5 = 5
Since 5 is divisible by 5, answer is yes.
以下是上述想法的实现。
C++
// C++ program to find if a number is
// divisible by 5 or not
#include
using namespace std;
// Function to find that number divisible
// by 5 or not. The function assumes that
// string length is at least one.
bool isDivisibleBy5(string str)
{
int n = str.length();
return ( ((str[n-1]-'0') == 0) ||
((str[n-1]-'0') == 5));
}
// Driver code
int main()
{
string str = "76955";
isDivisibleBy5(str)? cout << "Yes" :
cout << "No ";
return 0;
}
Java
// Java program to find if a number is
// divisible by 5 or not
class IsDivisible
{
// Function to find that number divisible
// by 5 or not. The function assumes that
// string length is at least one.
static boolean isDivisibleBy5(String str)
{
int n = str.length();
return ( ((str.charAt(n-1)-'0') == 0) ||
((str.charAt(n-1)-'0') == 5));
}
// main function
public static void main (String[] args)
{
String str = "76955";
if(isDivisibleBy5(str))
System.out.println("Yes");
else
System.out.println("No");
}
}
Python
# Python program to find if a number is
# divisible by 5 or not
# Function to find that number divisible
# by 5 or not. The function assumes that
# string length is at least one.
def isDivisibleBy5(st) :
n = len(st)
return ( (st[n-1] == '0') or
(st[n-1] == '5'))
# Driver code
st = "76955"
if isDivisibleBy5(st) :
print "Yes"
else :
print "No "
# This code is contributed by Nikita Tiwari.
C#
// C# program to find if a number is
// C# program to find if a number
// is divisible by 5 or not.
using System;
class IsDivisible
{
// Function to find that number divisible
// by 5 or not. The function assumes that
// string length is at least one.
static bool isDivisibleBy5(String str)
{
int n = str.Length;
return (((str[n - 1] - '0') == 0) ||
((str[n - 1] - '0') == 5));
}
// Driver Code
public static void Main ()
{
String str = "76955";
if(isDivisibleBy5(str))
Console.Write("Yes");
else
Console.Write("No");
}
}
// This code is cotributed by Nitin Mittal.
PHP
Javascript
输出:
Yes