Java写一个数加上100是一个完全平方数,这个数加上168也是一个完全平方数,求这个数范围:1-999。打印出来156
时间: 2024-05-05 11:17:06 浏览: 11
```
public class PerfectSquare {
public static void main(String[] args) {
for (int i = 1; i <= 999; i++) {
int num1 = i + 100;
int num2 = i + 168;
if (isPerfectSquare(num1) && isPerfectSquare(num2)) {
System.out.println(i);
}
}
}
private static boolean isPerfectSquare(int num) {
int sqrt = (int) Math.sqrt(num);
return sqrt * sqrt == num;
}
}
```
输出结果:156
相关问题
java写一个方法求一个数是质数
下面是一个Java方法,用于判断一个数是否为质数:
```java
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
```
这个方法接受一个整数作为参数,如果这个数是质数,则返回true,否则返回false。方法的实现思路是,如果一个数不是质数,那么它一定可以分解成两个因数,其中至少一个因数小于等于它的平方根。所以我们只需要在2到sqrt(n)之间遍历,判断是否能整除n即可。如果存在一个因数能整除n,则n不是质数,返回false;否则n是质数,返回true。
怎么用JAVA 判断一个数是超完全数字不变数
一个超完全数字不变数是指一个数字在乘以2、3、4、5、6后,每个数字都可以通过重排得到原始数字。例如,142857是一个超完全数字不变数,因为:
142857 * 2 = 285714
142857 * 3 = 428571
142857 * 4 = 571428
142857 * 5 = 714285
142857 * 6 = 857142
要判断一个数是否是超完全数字不变数,可以使用以下JAVA代码:
public static boolean isSuperPermutation(int n) {
String s = String.valueOf(n);
for (int i = 2; i <= 6; i++) {
String s2 = String.valueOf(n * i);
if (s2.length() != s.length()) {
return false;
}
boolean found = false;
for (int j = 0; j < s.length(); j++) {
if (s2.indexOf(s.charAt(j)) >= 0) {
found = true;
} else {
found = false;
break;
}
}
if (!found) {
return false;
}
}
return true;
}
该方法接受一个整数作为参数,如果该数字是超完全数字不变数,则返回true,否则返回false。该方法首先将该数字转换为字符串,并使用一个循环来检查该数字乘以2、3、4、5、6后的结果是否可以通过重排得到原始数字。如果其中任何一个结果不能得到原始数字,则返回false。如果所有结果都可以得到原始数字,则返回true。