Untitled
By: a guest | Feb 9th, 2010 | Syntax:
None | Size: 1.82 KB | Hits: 32 | Expires: Never
/*
ID: my_ID
LANG: JAVA
TASK: dualpal
*/
import java.io.*;
import java.util.*;
class dualpal {
private static String result="";
public static void main (String[] args) throws IOException {
BufferedReader f=new BufferedReader(new FileReader("dualpal.in"));
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("dualpal.out")));
StringTokenizer data=new StringTokenizer(f.readLine());
int N=Integer.parseInt(data.nextToken());
int S=Integer.parseInt(data.nextToken());
S++;
int counter=0;
for (int i=S;i<10000;S++) {
if (doesPass(S)) {
counter++;
out.println(""+S);
}
if (counter == N) {
break;
}
}
out.close();
System.exit(0);
}
public static Boolean doesPass (int s) {
int counter=0;
for (int i=2;i<11;i++) {
if (isPalin(changeBase(s,i))) {
counter++;
}
if (counter == 2) {
return true;
}
}
return false;
}
public static Boolean isPalin (String s) {
int marker=0;
//remove leading and trailing 0's
for (int i=0;i<s.length();i++) {
if (s.charAt(i) == '0' && s.charAt(s.length() - i -1)=='0') {
marker++;
} else {
break;
}
}
s=s.substring(marker,s.length() - marker);
marker=0;
for (int i=0;i<s.length();i++) {
if (s.charAt(i) == s.charAt(s.length() - i -1)) {
marker++;
} else {
break;
}
}
if (marker == s.length() || marker+1==s.length()) {
return true;
}
return false;
}
public static String changeBase (int org, int base) {
int tF=org;
Boolean passer=true;
String result="";
while (passer) {
if (tF / base < 1) {
result=(tF % base)+result;
passer=false;
} else {
result=(tF % base)+result;
tF=(tF - (tF % base))/base;
}
}
if (result.equals("")) { result=""+org; }
return result;
}
}