From 4e6b5c774fa62d56b133425e79cf3dbb96e5a0ab Mon Sep 17 00:00:00 2001 From: Daniele Fucini Date: Sat, 21 Sep 2019 15:44:42 +0200 Subject: [PATCH] Add function to projecteuler library Added the function is_palindrome to the projecteuler library --- C/p004.c | 24 +----------------------- C/projecteuler.c | 21 +++++++++++++++++++++ C/projecteuler.h | 1 + Python/p004.py | 16 +--------------- Python/projecteuler.py | 15 +++++++++++++++ 5 files changed, 39 insertions(+), 38 deletions(-) diff --git a/C/p004.c b/C/p004.c index 76204e3..e37f4b6 100644 --- a/C/p004.c +++ b/C/p004.c @@ -1,8 +1,7 @@ #include #include #include - -int is_palindrome(int num, int base); +#include "projecteuler.h" int main(int argc, char **argv) { @@ -35,24 +34,3 @@ int main(int argc, char **argv) return 0; } - -int is_palindrome(int num, int base) -{ - int reverse = 0, tmp; - - tmp = num; - - while(tmp > 0) - { - reverse *= base; - reverse += tmp % base; - tmp /= base; - } - - if(num == reverse) - { - return 1; - } - - return 0; -} diff --git a/C/projecteuler.c b/C/projecteuler.c index 2dac986..363b01f 100644 --- a/C/projecteuler.c +++ b/C/projecteuler.c @@ -205,3 +205,24 @@ void quick_sort(void **array, int l, int r, int (*cmp)(void *lv, void *rv)) quick_sort(array, l, i-1, cmp); quick_sort(array, i+1, r, cmp); } + +int is_palindrome(int num, int base) +{ + int reverse = 0, tmp; + + tmp = num; + + while(tmp > 0) + { + reverse *= base; + reverse += tmp % base; + tmp /= base; + } + + if(num == reverse) + { + return 1; + } + + return 0; +} diff --git a/C/projecteuler.h b/C/projecteuler.h index b577090..c713906 100644 --- a/C/projecteuler.h +++ b/C/projecteuler.h @@ -5,6 +5,7 @@ int is_prime(long int); long int lcmm(long int *values, int n); long int lcm(long int a, long int b); long int gcd(long int a, long int b); +int is_palindrome(int num, int base); int *sieve(int n); int count_divisors(int n); void insertion_sort(void **array, int l, int r, int (*cmp)(void *lv, void *rv)); diff --git a/Python/p004.py b/Python/p004.py index fa06967..eb7d8d6 100644 --- a/Python/p004.py +++ b/Python/p004.py @@ -1,21 +1,7 @@ #!/usr/bin/python3 from timeit import default_timer - -def is_palindrome(num, base): - reverse = 0 - - tmp = num - - while tmp > 0: - reverse = reverse * base - reverse = reverse + tmp % base - tmp = tmp // base - - if num == reverse: - return 1 - - return 0 +from projecteuler import is_palindrome def main(): start = default_timer() diff --git a/Python/projecteuler.py b/Python/projecteuler.py index f0ec791..1a8a6ed 100644 --- a/Python/projecteuler.py +++ b/Python/projecteuler.py @@ -69,3 +69,18 @@ def count_divisors(n): count = count - 1 return count + +def is_palindrome(num, base): + reverse = 0 + + tmp = num + + while tmp > 0: + reverse = reverse * base + reverse = reverse + tmp % base + tmp = tmp // base + + if num == reverse: + return 1 + + return 0