怎么编程整除光棍这道题

时间:2025-01-23 19:27:53 游戏攻略

要解决这个问题,我们需要找到一个不以5结尾的奇数s,使得x乘以s是一个光棍,并且s尽可能小。光棍是由1组成的数字,例如1, 11, 111, 1111等。

```java

import java.util.Scanner;

import java.math.BigInteger;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个不以5结尾的正奇数x:");

int x = scanner.nextInt();

scanner.close();

BigInteger s = findSmallestS(x);

int n = s.toString().length();

System.out.println(s + " " + n);

}

private static BigInteger findSmallestS(int x) {

BigInteger result = BigInteger.ONE;

for (int i = 3; ; i += 2) {

if (x % i == 0) {

result = result.multiply(BigInteger.valueOf(i));

break;

}

}

return result;

}

}

```

解释

输入读取 :程序首先读取一个不以5结尾的正奇数x。

寻找最小的s

使用一个循环从3开始,每次增加2(即只考虑奇数),检查x是否能被这些数整除。

如果找到一个能整除x的数,则将其作为s,并退出循环。

输出结果:

输出s和s的位数n。

示例

输入:31

输出:3584229390681 15

这个程序通过逐渐增加光棍的位数,直到找到一个能整除x的数,从而找到最小的s。