Problem 36: Find the sum of all numbers less than one million, which are palindromic in base 10 and base 2.
class runner
{
public static boolean palin_base10(int y){
int number = y, temp, reversedNumber = 0;
while(number > 0){
temp = number % 10;
number = number / 10;
reversedNumber = reversedNumber * 10 + temp;
}
return y == reversedNumber;
}
//limited by 1 million
static int[] two_arr = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288};
public static boolean palin_base2(int y){
boolean[] arr = new boolean[two_arr.length];
int z = y; int start=0;
for(int m=two_arr.length-1;m>-1;m--){
if(z>=two_arr[m]){
if(start-1; i--){
if(arr[i] == arr[start-i]){
}else{return false;}
}
return true;
}
public static void main (String[] args) throws java.lang.Exception
{
long time = System.currentTimeMillis();
int sum = 0;
for(int i=1;i<1000000 +1;i+=2){
if(palin_base10(i) && palin_base2(i)){
sum+=i;
}
}
System.out.println(sum);
System.out.println("time: "+(System.currentTimeMillis() - time));
}
}