CTF #nullcon 2012: Programación 2
En el segundo nivel de está categoría se nos pedía la suma los términos medios de las primeras 1337 del triángulo de Pascal.
Pues nada vistazo a la wikipedia, problema conocido, seguro que alguien ha escrito el algoritmo en Ruby, lo bajo, lo modifico, quedándome de esta forma:
#!/usr/bin/env ruby def pascal(n) p=[1] sum = 0 while(p.length<n) # puts p.join(" ") p.join(" ") p=Array.new(p.length+1) {|i| a=i0 ? p[i-1] : 0 a+b } if p.length.odd? sum = sum + p[p.length()/2] end end return sum+1 end puts "sum: " + pascal(1337).to_s
Y cuyo resultado al ejecutarlo y por lo tanto nuestro flag:
4365932474188423707093600683230364311423941198777278660206654 3431205872166674362332393596312576719064242547970040323267566 5303433331039708200725935787062342766243246058781866709722670 5645987145656659456934356498862160032628647508069786551862253 7377534356455651048425097523734881838663157063304671110082383 2182944537376787442215601583578968563307031943568828954828743 83651576271102847866170999680296497Básicamente al algoritmo original le añado:
if p.length.odd? sum = sum + p[p.length()/2] end
Para sumar el término medio de las filas impares, que son las que tienen término medio y al final le sumamos 1 a la suma total por la primera línea cuya valor del término medio y único es 1.
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec