diff options
Diffstat (limited to 'mat/euler/4')
-rw-r--r-- | mat/euler/4/Makefile | 2 | ||||
-rwxr-xr-x | mat/euler/4/a.out | bin | 0 -> 8576 bytes | |||
-rw-r--r-- | mat/euler/4/prog.c | 28 |
3 files changed, 30 insertions, 0 deletions
diff --git a/mat/euler/4/Makefile b/mat/euler/4/Makefile new file mode 100644 index 0000000..2def8af --- /dev/null +++ b/mat/euler/4/Makefile @@ -0,0 +1,2 @@ +default: + gcc prog.c diff --git a/mat/euler/4/a.out b/mat/euler/4/a.out Binary files differnew file mode 100755 index 0000000..336eb2e --- /dev/null +++ b/mat/euler/4/a.out diff --git a/mat/euler/4/prog.c b/mat/euler/4/prog.c new file mode 100644 index 0000000..151dea9 --- /dev/null +++ b/mat/euler/4/prog.c @@ -0,0 +1,28 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +int main(int argc, char ** argv) { + if (argc != 1+2) { + fprintf(stderr, "uporaba: %s <min> <max>\nprimer: %s 100 999\n", argv[0], argv[0]); + return 1; + } + size_t i, k; + unsigned long long int d = 0; + unsigned long long int j[2]; + unsigned long long int min = atoi(argv[1]); + unsigned long long int max = atoi(argv[2]); + unsigned long long int step = 1; + char s[256] = ""; + for (j[0] = min; j[0] <= max; j[0]++) + for (j[1] = min; j[1] <= max; j[1]++) { + sprintf(s, "%lld", j[0]*j[1]); + i = strlen(s); + for (k = 0; k < i; k++) + if (s[k] != s[(i-1)-k]) + break; + else if (k >= i-1 && d < j[0]*j[1]) + d = j[0]*j[1]; + } + fprintf(stdout, "konec. našel največji palindrom %lld.\n", d); + return 0; +} |