给定数字N ,任务是检查数字是否可被31整除。
例子:
Input: N = 1922
Output: Yes
Explanation:
31 * 62 = 1922
Input: N = 2722400
Output: No
方法: 31的除法检验是:
- 提取最后一位数字。
- 从除去最后一位后获得的剩余号码中减去3 *最后一位。
- 重复上述步骤,直到获得两位数字或零。
- 如果两位数可被31整除或为0,则原始数字也可被31整除。
例如:
If N = 49507
Step 1:
N = 49507
Last digit = 7
Remaining number = 4950
Subtracting 3 times last digit
Resultant number = 4950 - 3*7 = 4929
Step 2:
N = 4929
Last digit = 9
Remaining number = 492
Subtracting 3 times last digit
Resultant number = 492 - 3*9 = 465
Step 3:
N = 465
Last digit = 5
Remaining number = 46
Subtracting 3 times last digit
Resultant number = 46 - 3*5 = 31
Step 4:
N = 31
Since N is a two-digit number,
and 31 is divisible by 31
Therefore N = 49507 is also divisible by 31
下面是上述方法的实现:
C++
// C++ program to check whether a number
// is divisible by 31 or not
#include
#include
using namespace std;
// Function to check if the number is divisible by 31 or not
bool isDivisible(int n)
{
int d;
// While there are at least two digits
while (n / 100)
{
// Extracting the last
d = n % 10;
// Truncating the number
n /= 10;
// Subtracting three times the last
// digit to the remaining number
n = abs(n-(d * 3));
}
// Finally return if the two-digit
// number is divisible by 31 or not
return (n % 31 == 0) ;
}
// Driver Code
int main()
{
int N = 1922;
if (isDivisible(N))
cout<<"Yes"<
Java
// Java program to check whether a number
// is divisible by 31 or not
import java.util.*;
class GFG{
// Function to check if the number is divisible by 31 or not
static boolean isDivisible(int n)
{
int d;
// While there are at least two digits
while ((n / 100) > 0)
{
// Extracting the last
d = n % 10;
// Truncating the number
n /= 10;
// Subtracting three times the last
// digit to the remaining number
n = Math.abs(n - (d * 3));
}
// Finally return if the two-digit
// number is divisible by 31 or not
return (n % 31 == 0) ;
}
// Driver Code
public static void main(String[] args)
{
int N = 1922;
if (isDivisible(N))
System.out.print("Yes");
else
System.out.print("No");
}
}
// This code is contributed by PrinciRaj1992
Python 3
# Python program to check whether a number
# is divisible by 31 or not
# Function to check if the number is
# divisible by 31 or not
def isDivisible(n) :
# While there are at least two digits
while n // 100 :
# Extracting the last
d = n % 10
# Truncating the number
n //= 10
# Subtracting three times the last
# digit to the remaining number
n = abs(n-(d * 3))
# Finally return if the two-digit
# number is divisible by 31 or not
return (n % 31 == 0)
# Driver Code
if __name__ == "__main__" :
n = 1922
if (isDivisible(n)) :
print("Yes")
else :
print("No")
C#
// C# program to check whether a number
// is divisible by 31 or not
using System;
class GFG{
// Function to check if the number is divisible by 31 or not
static bool isDivisible(int n)
{
int d;
// While there are at least two digits
while ((n / 100) > 0)
{
// Extracting the last
d = n % 10;
// Truncating the number
n /= 10;
// Subtracting three times the last
// digit to the remaining number
n = Math.Abs(n - (d * 3));
}
// Finally return if the two-digit
// number is divisible by 31 or not
return (n % 31 == 0) ;
}
// Driver Code
public static void Main(String[] args)
{
int N = 1922;
if (isDivisible(N))
Console.Write("Yes");
else
Console.Write("No");
}
}
// This code is contributed by Rajput-Ji
输出:
Yes