diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2013-02-13 23:04:27 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2013-02-13 23:04:27 +0200 |
| commit | fc3ad977c54a060a2b8aab47a7cea9ece371f05d (patch) | |
| tree | e1cb036d38f67ff462a50379bbb32eac2c5fd3bb /p4 | |
| parent | 77cdad53d8673c731718723250953f6c4ed5d504 (diff) | |
| download | euler-c-fc3ad977c54a060a2b8aab47a7cea9ece371f05d.tar.gz euler-c-fc3ad977c54a060a2b8aab47a7cea9ece371f05d.zip | |
problems 3 - 9
Diffstat (limited to 'p4')
| -rw-r--r-- | p4/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | p4/main.c | 71 |
2 files changed, 78 insertions, 0 deletions
diff --git a/p4/CMakeLists.txt b/p4/CMakeLists.txt new file mode 100644 index 0000000..ba228e5 --- /dev/null +++ b/p4/CMakeLists.txt @@ -0,0 +1,7 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +PROJECT(euler_problem4 C) +INCLUDE_DIRECTORIES(../common) +SET(SOURCES main.c ../common/utils.c) +ADD_EXECUTABLE(p4 ${SOURCES}) +TARGET_LINK_LIBRARIES(p4 m) +SET_SOURCE_FILES_PROPERTIES(${SOURCES} PROPERTIES COMPILE_FLAGS -g) diff --git a/p4/main.c b/p4/main.c new file mode 100644 index 0000000..0931535 --- /dev/null +++ b/p4/main.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "utils.h" + +list_t *digits(int i) +{ + list_t *lst = NULL; + + while (i > 0) + { + int digit = i % 10; + i = i / 10; + lst = list_append_int(lst, digit); + } + + return lst; +} + +int is_palindrome(int i) +{ + list_t *d = NULL; + int len = 0; + int j = 0; + + if (i < 10) + return 1; + + d = digits(i); + len = list_len(d); + + // printf("i:%d\n", i); + + for (j = 0; j < len/2; ++j) + { + int *a = (int*)list_get_n(d, j); + int *b = (int*)list_get_n(d, len-1-j); + + // printf("a:%d b:%d\n", *a, *b); + + if (*a != *b) + { + return 0; + } + } + + list_free(d, list_free_int); + + return 1; +} + +int main(int argc, char **argv) +{ + int i, j; + + for (i = 999; i >= 900; i--) + { + for (j = 999; j >= 900; j--) + { + int k = i*j; + + if (is_palindrome(k)) + { + printf("%d * %d = %d\n", i, j, k); + return 0; + } + } + } + + return 0; +}
\ No newline at end of file |
