Commit fa2c5b27d6b5919b792e973f14e8b1f206ce3ec7
1 parent
4faa017546
Exists in
master
Agregando problemas resueltos
Showing
14 changed files
with
312 additions
and
0 deletions
Show diff stats
01 - Multiplos 3 y 5/p01
No preview for this file type
01 - Multiplos 3 y 5/p01.cpp
| File was created | 1 | /* | |
| 2 | |||
| 3 | Multiples of 3 and 5 | ||
| 4 | Problem 1 | ||
| 5 | If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. | ||
| 6 | Find the sum of all the multiples of 3 or 5 below 1000. | ||
| 7 | |||
| 8 | By: dbk | ||
| 9 | |||
| 10 | */ | ||
| 11 | |||
| 12 | #include <iostream> | ||
| 13 | #include <stdio.h> | ||
| 14 | |||
| 15 | using namespace std; | ||
| 16 | |||
| 17 | int main() | ||
| 18 | { | ||
| 19 | int res = 0; | ||
| 20 | |||
| 21 | for (int i = 1; i < 1000; i++) | ||
| 22 | { | ||
| 23 | res += (i % 3 == 0 || i % 5 == 0) ? i : 0; | ||
| 24 | } | ||
| 25 | |||
| 26 | printf("Resultado: %i\n", res); | ||
| 27 | |||
| 28 | return 0; | ||
| 29 | } |
02 - Serie Fibonacci/p02
No preview for this file type
02 - Serie Fibonacci/p02.cpp
| File was created | 1 | /* | |
| 2 | Even Fibonacci numbers | ||
| 3 | Problem 2 | ||
| 4 | Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: | ||
| 5 | |||
| 6 | 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... | ||
| 7 | |||
| 8 | By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. | ||
| 9 | |||
| 10 | by:dbk | ||
| 11 | |||
| 12 | */ | ||
| 13 | |||
| 14 | #include <stdio.h> | ||
| 15 | |||
| 16 | #define LIMITE 4000000 | ||
| 17 | |||
| 18 | int main() | ||
| 19 | { | ||
| 20 | |||
| 21 | int i; | ||
| 22 | unsigned int a = 1; | ||
| 23 | unsigned int b = 1; | ||
| 24 | unsigned int res = 0; | ||
| 25 | unsigned int tmp = 0; | ||
| 26 | |||
| 27 | do | ||
| 28 | { | ||
| 29 | |||
| 30 | tmp = a; | ||
| 31 | a = b; | ||
| 32 | b += tmp; | ||
| 33 | |||
| 34 | if (b % 2 == 0) res += b; | ||
| 35 | |||
| 36 | }while(b < LIMITE); | ||
| 37 | |||
| 38 | printf("\nResultado final: %ld\n", res); | ||
| 39 | |||
| 40 | return 0; | ||
| 41 | } |
03 - Factor primo/p03
No preview for this file type
03 - Factor primo/p03.cpp
| File was created | 1 | /* | |
| 2 | |||
| 3 | Largest prime factor | ||
| 4 | Problem 3 | ||
| 5 | Published on Friday, 2nd November 2001, 12:00 pm; Solved by 256800 | ||
| 6 | The prime factors of 13195 are 5, 7, 13 and 29. | ||
| 7 | |||
| 8 | What is the largest prime factor of the number 600851475143 ? | ||
| 9 | |||
| 10 | By: dbk | ||
| 11 | |||
| 12 | */ | ||
| 13 | #include <stdio.h> | ||
| 14 | |||
| 15 | #define CALCULAR 600851475143 | ||
| 16 | #define MAX 1000000 | ||
| 17 | |||
| 18 | int main(int argc, char const *argv[]) | ||
| 19 | { | ||
| 20 | |||
| 21 | long res = 0; | ||
| 22 | long valor = CALCULAR; | ||
| 23 | |||
| 24 | for (int i = 2; i < MAX; i++) | ||
| 25 | { | ||
| 26 | while ( valor % i == 0) | ||
| 27 | { | ||
| 28 | valor /= i; | ||
| 29 | res = i; | ||
| 30 | } | ||
| 31 | |||
| 32 | } | ||
| 33 | |||
| 34 | printf("Mayor factor primo: %ld\n", res); | ||
| 35 | |||
| 36 | return 0; | ||
| 37 | } |
04 - Producto palindromo/itoaEjemplo.cpp
| File was created | 1 | #include <stdio.h> | |
| 2 | #include <stdlib.h> | ||
| 3 | |||
| 4 | int main () | ||
| 5 | { | ||
| 6 | int i; | ||
| 7 | char buffer [33]; | ||
| 8 | printf ("Enter a number: "); | ||
| 9 | scanf ("%d",&i); | ||
| 10 | itoa (i,buffer,10); | ||
| 11 | printf ("decimal: %s\n",buffer); | ||
| 12 | itoa (i,buffer,16); | ||
| 13 | printf ("hexadecimal: %s\n",buffer); | ||
| 14 | itoa (i,buffer,2); | ||
| 15 | printf ("binary: %s\n",buffer); | ||
| 16 | return 0; | ||
| 17 | } |
04 - Producto palindromo/p04
No preview for this file type
04 - Producto palindromo/p04.cpp
| File was created | 1 | /* | |
| 2 | Largest palindrome product | ||
| 3 | Problem 4 | ||
| 4 | A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. | ||
| 5 | |||
| 6 | Find the largest palindrome made from the product of two 3-digit numbers. | ||
| 7 | |||
| 8 | By:dbk | ||
| 9 | */ | ||
| 10 | #include <stdio.h> | ||
| 11 | #include <string.h> | ||
| 12 | |||
| 13 | using namespace std; | ||
| 14 | |||
| 15 | #define MAX 10000 | ||
| 16 | |||
| 17 | bool validPalindromic(int); | ||
| 18 | bool validPalindromicApuntador(int); | ||
| 19 | |||
| 20 | int main(int argc, char const *argv[]) | ||
| 21 | { | ||
| 22 | |||
| 23 | int a = 1; | ||
| 24 | int b = 1; | ||
| 25 | |||
| 26 | int c = 0; | ||
| 27 | |||
| 28 | int res = 0; | ||
| 29 | |||
| 30 | do | ||
| 31 | { | ||
| 32 | a = 1; | ||
| 33 | do | ||
| 34 | { | ||
| 35 | c = a * b; | ||
| 36 | res = (validPalindromicApuntador(c) && c > res) ? c : res; | ||
| 37 | |||
| 38 | }while(a++ < MAX); | ||
| 39 | }while(b++ < MAX); | ||
| 40 | printf("Resultado final: %d\n", res); | ||
| 41 | return 0; | ||
| 42 | } | ||
| 43 | |||
| 44 | |||
| 45 | bool validPalindromic(int valueCheck) | ||
| 46 | { | ||
| 47 | bool flagValid = true; | ||
| 48 | char buffer[30]; | ||
| 49 | int counterDsc = 0; | ||
| 50 | int counterAsc = 0; | ||
| 51 | int sizeStringNumber = 0; | ||
| 52 | |||
| 53 | //Convierte el entero a una cadena | ||
| 54 | sprintf(buffer, "%d", valueCheck); | ||
| 55 | counterDsc = sizeStringNumber = strlen(buffer); | ||
| 56 | while(sizeStringNumber > counterAsc) { | ||
| 57 | flagValid &= (buffer[counterAsc++] == buffer[--counterDsc]) ? true : false; | ||
| 58 | } | ||
| 59 | |||
| 60 | return flagValid; | ||
| 61 | } | ||
| 62 | |||
| 63 | bool validPalindromicApuntador(int valueCheck) | ||
| 64 | { | ||
| 65 | char *ptrAsc; | ||
| 66 | char *ptrDsc; | ||
| 67 | char buffer[30]; | ||
| 68 | bool flagValid = true; | ||
| 69 | |||
| 70 | //Convierte el entero a una cadena | ||
| 71 | sprintf(buffer, "%d", valueCheck); | ||
| 72 | ptrAsc = buffer; | ||
| 73 | ptrDsc = &buffer[strlen(buffer)]; | ||
| 74 | |||
| 75 | while(ptrDsc >= ptrAsc) { | ||
| 76 | flagValid &= (*(ptrAsc++) == *(--ptrDsc)); | ||
| 77 | } | ||
| 78 | return flagValid; | ||
| 79 | } | ||
| 80 | |||
| 81 | /* | ||
| 82 | TEST DIR MEM Apuntadores | ||
| 83 | printf("mem1:\t%p\n", ptrAsc); | ||
| 84 | printf("mem2:\t%p\n", ptrDsc); | ||
| 85 | */ |
05 - Multiplo menor/p05
No preview for this file type
05 - Multiplo menor/p05.cpp
| File was created | 1 | /* | |
| 2 | Smallest multiple | ||
| 3 | |||
| 4 | Problem 5 | ||
| 5 | 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. | ||
| 6 | |||
| 7 | What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? | ||
| 8 | */ | ||
| 9 | #include <stdio.h> | ||
| 10 | |||
| 11 | using namespace std; | ||
| 12 | |||
| 13 | #define MAX_VALUE 20 | ||
| 14 | |||
| 15 | |||
| 16 | int main(int argc, char const *argv[]) | ||
| 17 | { | ||
| 18 | int i = 0; | ||
| 19 | int incMultiplos = 0; | ||
| 20 | |||
| 21 | bool flgValid = true; | ||
| 22 | |||
| 23 | do | ||
| 24 | { | ||
| 25 | i++; | ||
| 26 | flgValid = true; | ||
| 27 | incMultiplos = MAX_VALUE; | ||
| 28 | |||
| 29 | while(incMultiplos > 0) | ||
| 30 | { | ||
| 31 | flgValid &= (i % incMultiplos-- == 0); | ||
| 32 | if (!flgValid) break; | ||
| 33 | } | ||
| 34 | |||
| 35 | }while(!flgValid); | ||
| 36 | |||
| 37 | printf("i: %d \t%x\n", i, flgValid); | ||
| 38 | |||
| 39 | return 0; | ||
| 40 | } |
06 - Suma de diferencia de cuadrados/p06
No preview for this file type
06 - Suma de diferencia de cuadrados/p06.cpp
| File was created | 1 | /* | |
| 2 | |||
| 3 | Sum square difference | ||
| 4 | Problem 6 | ||
| 5 | The sum of the squares of the first ten natural numbers is, | ||
| 6 | |||
| 7 | 12 + 22 + ... + 102 = 385 | ||
| 8 | The square of the sum of the first ten natural numbers is, | ||
| 9 | |||
| 10 | (1 + 2 + ... + 10)2 = 552 = 3025 | ||
| 11 | Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640. | ||
| 12 | |||
| 13 | Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. | ||
| 14 | |||
| 15 | */ | ||
| 16 | |||
| 17 | #include <stdio.h> | ||
| 18 | #include <math.h> | ||
| 19 | |||
| 20 | using namespace std; | ||
| 21 | |||
| 22 | #define LIMITE_RANGO 100 | ||
| 23 | |||
| 24 | int main(int argc, char const *argv[]) | ||
| 25 | { | ||
| 26 | |||
| 27 | int i = 0; | ||
| 28 | int res = 0; | ||
| 29 | int valSum = 0; | ||
| 30 | int valPow = 0; | ||
| 31 | |||
| 32 | while(i++ < LIMITE_RANGO) | ||
| 33 | { | ||
| 34 | valSum += i; | ||
| 35 | valPow += pow(i, 2); | ||
| 36 | } | ||
| 37 | |||
| 38 | res = pow(valSum, 2) - valPow; | ||
| 39 | printf("Resultado final: %d\n", res); | ||
| 40 | |||
| 41 | return 0; | ||
| 42 | } |
p01.cpp
| File was created | 1 | #include <iostream> | |
| 2 | |||
| 3 | using namespace std; | ||
| 4 | |||
| 5 | int main() | ||
| 6 | { | ||
| 7 | res = 0; | ||
| 8 | |||
| 9 | for (int i = 10; i > 0; i--) | ||
| 10 | { | ||
| 11 | |||
| 12 | if (i % 3 == 0 || i % 5) | ||
| 13 | { | ||
| 14 | res += i; | ||
| 15 | } | ||
| 16 | |||
| 17 | } | ||
| 18 | |||
| 19 | cout << res << endl; | ||
| 20 | |||
| 21 | } |