Generar numeros que contengan un numero dado x

Iniciado por GoBrit, 16 Enero 2015, 11:29 AM

0 Miembros y 1 Visitante están viendo este tema.

Orubatosu

Hombre, un "1" a la izquierda solo deberías de sumarlo si el numero empieza por "0"

En el resto de los casos, obviamente no
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

Gh057

GoBrit, por favor fíjate que tanto Orubatosu como yo te hemos indicado lo mismo.. fíjate en mi comentario sobre discriminar dependiendo como está formado n si hay que agregar un dígito a la izquierda (si el dígito de mayor peso es un cero...) comparar y de caso de no ser el resultado esperado e iterarlo, o bien a la derecha (y ahí optimizar la iteración según test de primalidad)... ya que es probable por el rango de valores que tengas posibles primos m más cercanos en este segundo caso.

Te recomiendo generar primero el algoritmo (puede ser gráficamente) y luego cuando creas que ya obtienes una coherencia en los resultados lo codeas. Después intenta optimizarlo.. divide y te será más facil... pero si intentas todo junto, seguirás complicado. Saludos
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

MeCraniDOS

Hola GoBrit,

Si quieres pon algun código de lo que vas haciendo para que podamos ayudarte mejor  ;D

Un saludo
"La física es el sistema operativo del Universo"
     -- Steven R Garman

engel lex

#13
se me ocurre..
Código (cpp) [Seleccionar]

int numero; //el valor a procesar
int busqueda; //el valor a buscar sin 0s a la izquierda
int tamano; //10 elevado a el largo de el valor buscado incluyendo 0 a la izquierda



primero generas numeros... preferiblemente primos para resolver ese problema de antemano

y "tamano" será igual a 1 seguido de tantos ceros como numeros tenga el valor a buscar
  ej el valor a buscar es "023" entonce "tamano" es "1000", si es 8, "tamano" es "10"

si restas la busqueda al numero el resultado debe contener ceros en el espacio esperado... entonces el modulo debe ser 0... si eso no sucede quiere decir que el ultimo valor no coincide, asi que movemos el numero original una coma a la izquierda

supongamos que el numero es

87240065948 y buscamos 0065... entonces busqueda = 65 y tamano = 104

87240065948 - 65 = 87240065883
87240065883 mod 10^4 = 5883
5883 != 0


si dividimos este numero varias veces entre 10 en un ciclo nos queda eventualmente

87240065 - 65 = 87240000
87240065 mod 10^4 = 0
0 == 0


y bueno... si 0=0 quiere decir que el numero si es...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.