-
Notifications
You must be signed in to change notification settings - Fork 0
/
project_euler4.c
56 lines (47 loc) · 1.28 KB
/
project_euler4.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <stdlib.h>
void pe4(void); /* Proj. Euler problem #4 */
int eh_palindromo(int n);
int main(void)
{
pe4(); /* Proj. Euler problem #4 */
return EXIT_SUCCESS;
}
/* ---------------------------------------------------------------------- */
/* Proj. Euler problem #4 */
/* Problem description:
* Esse programa encontra o maior palindromo a partir do produto de dois numeros de 3 digitos.
*/
void pe4(void)
{
/* local variables */
ulong r=0; /* answer */
int n = 1;
eh_palindromo(n);
int maior_palindromo = 0;
for (int i = 999; i >= 100; i--) {
for (int j = i; j >= 100; j--) {
int produto = i * j;
if (produto <= maior_palindromo) {
break;
}
if (eh_palindromo(produto)) {
maior_palindromo = produto;
r = maior_palindromo;
}
}
}
printf("\nO maior palindromo feito a partir do produto de dois numeros de 3 digitos eh: ");
printf("%s: %lu\n", __FUNCTION__, r); /* answer */
return;
}
int eh_palindromo(int n) {
int reverso = 0;
int temp = n;
while (temp != 0) {
int digito = temp % 10;
reverso = reverso * 10 + digito;
temp = temp / 10;
}
return n == reverso;
}