Un nombre natural és un nombre primer cúbic si és un nombre primer que es pot escriure com a diferència de dos nombres consecutius cadascun d’ells elevat al cub.
Per exemple, el 61 és un nombre primer cúbic ja que és un nombre primer i a més a més 61 = 53 − 43.
Fes un programa que donat un flux de naturals indiqui si el flux conté tres nombres seguits que siguin primers cúbics. En cas que sigui així has de mostrar els tres nombres primers cúbics seguits que apareixen abans en el flux.
Entrada
L’entrada consisteix en un flux de naturals que té com a mínim tres elements.
Sortida
Si el flux conté tres nombre seguits que són primers cúbics mostrarà aquests tres nombres, sinó compleix aquesta propietat mostrarà la cadena de caràcters "NO"
.
Observació
IMPORTANT!: Per resoldre aquest problema cal que implementis la funció primer_cubic que donat un nombre natural retorna true
si és un nombre primer cúbic o false
en cas contrari.
A més NO pots usar strings, taules ni vectors en la teva solució. SÍ pots usar string per escriure el missatge NO en el canal de sortida.
Input
1 2 3 7 127 61 17 19 1801 397 4 12 919 19 547 1801 55 0
Output
7 127 61
Input
1 10 1951 2269 37
Output
1951 2269 37
Input
543210 7 19 1000000 19 37 1000010 37 61 1000100 61 127 1000110 127 271 1000200 271 331 1000210 331 397 1001000 397 547 1001010 547 631 1001100 631 919 1001110 919 1657 1001200 1801
Output
NO
Input
2269 7 1951 1000000 19 37 1000010 37 61 1000100 61 127 1000110 127 271 1000200 271 331 1000210 331 397 1001000 397 547 1001010 547 631 1001100 631 919 1001110 919 1657 1001200 1801
Output
2269 7 1951