タイトル
あなたが会うと3で割り切れる場合は3は、その後、数が小数で3で割り切れます。
六角で5も、このルールを満たします。
数kが与えられると、このルールで数16進数(16進数の範囲内1E18)を満たすを見つける、フリー出力を見つけるためには-1です。
問題の解決策
法律は、すなわち、kはxの数を見つけるために互いに素である、すなわち、下xは上記のルールを満たすDECIMAL、見つけることができ引いてもよいです。
関連
最大公約数:(もユークリッドアルゴリズムとして知られている)ユークリッドの互除法
- ユークリッドの定理:
gcd(a, b) = gcd(b , a mod b)
正の整数、bについて。 - 式中、a、bの大きさは関係ありません。値が値b未満である場合、再帰呼び出しアルゴリズムは、bの値を介して交換することができます。
コード
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
long k = sc.nextInt();
long x = k + 1;
for (; x <= 1e18; ++x) {
if (gcdGreaterThanOne(k, x)) {
System.out.println(x);
break;
}
}
if (x > 1e18) {
System.out.println(-1);
}
}
public static boolean gcdGreaterThanOne(long num1, long num2) {
return gcd(num1, num2) == 1;
}
private static long gcd(long num1, long num2) {
while (num2 != 0) {
long r = num1 % num2;
num1 = num2;
num2 = r;
}
return num1;
}
}