void negative_numbers_are_not_accepted_if_not_palindromic()
{
	assert_false(is_palindromic(-OCTAL_42, OCTAL));
	assert_false(is_palindromic(-OCTAL_172, OCTAL));
	assert_false(is_palindromic(-OCTAL_1234, OCTAL));
	assert_false(is_palindromic(-OCTAL_73257, OCTAL));
}
Ejemplo n.º 2
0
int main()
{
    int digit[64];
    long sum, i;
    sum = 0;
    for (i = 1; i < 1000000; i += 2) {
	if (is_palindromic(digit, i, 10) && is_palindromic(digit, i, 2))
	    sum += i;
    }

    printf("%d\n", sum);
    return 0;
}
Ejemplo n.º 3
0
int main() {
  int maxp = 0;
  std::string digits;

  const int MAX3 = 999;
  const int MIN3 = 100;

  int mini = MIN3;
  int minj = MIN3;
  int maxj = MAX3;
  for (int i = MAX3; i >= mini; i--) {
    for (int j = maxj; j >= minj; j--) {
      int product = i * j;
      std::ostringstream tmp;
      tmp << product;
      digits = tmp.str();
      if (is_palindromic(digits)) {
        if (product > maxp) {
          maxp = product;
          mini = minj = product / 1000; /* optimize */
        }
      }
    }
    maxj = i;
  }
  printf("%d\n", maxp);

  return 0;
}
Ejemplo n.º 4
0
int
main(int argc, char** argv) {
  FILE* fin = fopen("palsquare.in", "r");
  int base;
  fscanf(fin, "%d", &base);
  fclose(fin);

  FILE* fout = fopen("palsquare.out", "w");

  char buf[LEN_BUF + 1];
  char num[LEN_BUF + 1];

  int i;
  for (i = 1; i <= N; i++) {
    int square = i * i;
    reversed_num_w_base(square, base, buf);
    if (is_palindromic(buf)) {
      reversed_num_w_base(i, base, num);
      int len;
      for (len = 0; num[len] != '\0'; len++)
        ;
      for (len--; len >=0; len--) {
        fprintf(fout, "%c", num[len]);
      }
      fprintf(fout, " %s\n", buf);
    }
  }

  fclose(fout);

  return 0;
}
void one_digit_is_palindromic()
{
	assert_true(is_palindromic(0, OCTAL));
	assert_true(is_palindromic(1, OCTAL));
	assert_true(is_palindromic(2, OCTAL));
	assert_true(is_palindromic(3, OCTAL));
	assert_true(is_palindromic(4, OCTAL));
	assert_true(is_palindromic(5, OCTAL));
	assert_true(is_palindromic(6, OCTAL));
	assert_true(is_palindromic(7, OCTAL));
}
Ejemplo n.º 6
0
int main() {
    int largest = 0;
    
    for(int i = 100; i < 999; i++) {
        for(int j = 100; j < 999; j++) {
            if(is_palindromic(i * j))
                if(i * j > largest)
                    largest = i * j;
        }
    }

    printf("%d\n", largest);
}
Ejemplo n.º 7
0
Archivo: 4.c Proyecto: metaphox/euler
int main(void){
    int i, j;
    int tgt = 0, temp = 0;
    for(i = 999; i > 100; i--){
        for(j = 999; j > 100; j--){
            temp = i * j; 
            if(is_palindromic(temp) && temp > tgt){
                tgt = temp;
            }
        }
    }
    printf("%d\n", tgt);
    return 0;
}
Ejemplo n.º 8
0
int main(int argc, char *argv[])
{
        int i, j, N = 0, ii, jj;
        for (i = 100; i <= 999; i++) {
                for (j = 100; j <= 999; j++) {
                        int n = i*j;
                        if (is_palindromic(n) && n > N) {
                               N = n;
                               ii = i;
                               jj = j;
                        }
                }
        }
        printf("%d = %d * %d\n", N, ii, jj);
        return 0;
}
Ejemplo n.º 9
0
int main(int argc, char* argv[]) {
  int low, up;
  long long result = 0;
  for (low = 1; low < 10000; low++) {
    int sum = low * low;
    for (up = low + 1; up < 10000; up++) {
      sum += up * up;
      if (sum > 10000 * 10000) break;
      if (!in_cache(sum) && is_palindromic(sum)) {
        add_cache(sum);
        result += sum;
      }
    }
  }
  printf("%lli\n", result);
  return 0;
}
Ejemplo n.º 10
0
int main()
{
  int i, j, max = 0;
  for (i = 100; i < 1000; i++) {
    for (j = 100; j < 1000; j++) {
      int p = i*j;
      if (is_palindromic(p) && p > max ) {
        max = p;
      }
    }
  }
  
  
  if(max != 906609)
    return 1;
  
  return 0;
}
Ejemplo n.º 11
0
char* longestPalindrome(char* s) {
    int i = 0, j = 0, length = 0;
    char *res = malloc(sizeof(char) * 1001);
    for (i = 0; s[i]; ++i)
    {
        for (j = i; s[j]; ++j)
        {
            if (is_palindromic(s, i, j))
            {
                if (j - i + 1 > length)
                {
                    length = j - i + 1;
                    memcpy(res, s + i, j - i + 1);
                    res[j + 1] = 0;
                }
            }
        }
    }
    res[length] = 0;
    return res;
}
void invalid_base_results_in_error()
{
	assert_equals_int(PALINDROME_ERROR, is_palindromic(42, -1));
	assert_equals_int(PALINDROME_ERROR, is_palindromic(42, 0));
	assert_equals_int(PALINDROME_ERROR, is_palindromic(42, 1));
}
void can_work_with_hexadecimal_base()
{
	assert_true(is_palindromic(HEXADECIMAL_abccba, HEXADECIMAL));
	assert_false(is_palindromic(HEXADECIMAL_abcdef, HEXADECIMAL));
}
void can_work_with_decimal_base()
{
	assert_true(is_palindromic(DECIMAL_123321, DECIMAL));
	assert_false(is_palindromic(DECIMAL_123456, DECIMAL));
}
void can_work_with_binary_base()
{
	assert_true(is_palindromic(BINARY_10101, BINARY));
	assert_false(is_palindromic(BINARY_11101, BINARY));
}
void negative_palindromic_numbers_are_accepted()
{
	assert_true(is_palindromic(-5, OCTAL));
	assert_true(is_palindromic(-OCTAL_5775, OCTAL));
	assert_true(is_palindromic(-OCTAL_70207, OCTAL));
}
void odd_number_of_digits_can_be_palindromic()
{
	assert_true(is_palindromic(OCTAL_272, OCTAL));
	assert_true(is_palindromic(OCTAL_70207, OCTAL));
}
void even_number_of_digits_can_be_palindromic()
{
	assert_true(is_palindromic(OCTAL_11, OCTAL));
	assert_true(is_palindromic(OCTAL_77, OCTAL));
	assert_true(is_palindromic(OCTAL_5775, OCTAL));
}