题目描述
小明发现49很有趣,首先,它是个平方数。它可以拆分为4和9,拆分出来的部分也是平方数。169也有这个性质,我们权且称它们为:拼接平方数。
100可拆分1 00,这有点勉强,我们规定,0 00 000 等都不算平方数。
小明想:还有哪些数字是这样的呢?
你的任务出现了:找到某个区间的所有拼接平方数。
输入
两个正整数 a b (a<b<10^6)
输出
若干行,每行一个正整数。表示所有的区间[a,b]中的拼接平方数
样例输入
1 200
样例输出
49 169
package parctice;
import java.util.Scanner;
public class ph1821 {
public static boolean ispinjie(String s){
for(int i = 1;i<s.length();i++){
int ch1 = Integer.parseInt(s.substring(0,i));
int ch2 = Integer.parseInt(s.substring(i,s.length()));
if(issqrt(ch1) && issqrt(ch2)){
return true;
}
}
return false;
}
public static boolean issqrt(int n){
if(n==0){
return false;
}
int res = (int)Math.sqrt(n);
if(res * res == n){
return true;
}else{
return false;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int left = sc.nextInt();
int right = sc.nextInt();
for(int i = left;i<=right;i++){
if(i==1){
continue;
}
if(issqrt(i)) {
if(ispinjie(i+"")){
System.out.println(i);
}
}
}
}
}