Multiple of 17
Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
Description
Multiple of 17
Multiple of 17 |
Theorem: If you drop the last digit d of an integer n (n10), subtract 5d from the remaining integer, then the difference is a multiple of 17 if and only if n is a multiple of 17.
For example, 34 is a multiple of 17, because 3-20=-17 is a multiple of 17; 201 is not a multiple of 17, because 20-5=15 is not a multiple of 17.
Given a positive integer n, your task is to determine whether it is a multiple of 17.
Input
There will be at most 10 test cases, each containing a single line with an integer
n (
1n10100). The input terminates with
n = 0, which should not be processed.
Output
For each case, print 1 if the corresponding integer is a multiple of 17, print 0 otherwise.
Sample Input
34 201 2098765413 1717171717171717171717171717171717171717171717171718 0
Sample Output
1 0 1 0
Problemsetter: Rujia Liu, Special Thanks: Yiming Li
import java.math.BigInteger;
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
while(true)
{
BigInteger a = sc.nextBigInteger();
if(a.equals(BigInteger.ZERO))
{
break;
}
BigInteger ans ;
BigInteger b = a.mod(BigInteger.valueOf(10));
a = a.divide(BigInteger.valueOf(10));
a = a.subtract(b.multiply(BigInteger.valueOf(5)));
a = a.abs();
ans = a.mod(BigInteger.valueOf(17));
if(ans.equals(BigInteger.ZERO))
{
System.out.println(1);
}
else
{
System.out.println(0);
}
}
}
}