Skip to content
Snippets Groups Projects
Commit b064c9d5 authored by Nicolas Mantilla Molina's avatar Nicolas Mantilla Molina
Browse files

Correcciones sencillas

parent 1c1e0e0e
No related branches found
No related tags found
No related merge requests found
Showing
with 12 additions and 10 deletions
...@@ -11,8 +11,8 @@ int main() ...@@ -11,8 +11,8 @@ int main()
// Primero leemos el archivo input y verificamos su validez // Primero leemos el archivo input y verificamos su validez
cout << "Por favor ingrese la dirección del archivo con el input: "; cout << "Por favor ingrese la dirección del archivo con el input: ";
string nombre = "sample.in", linea; string nombre, linea;
// cin >> nombre; // Utilizar sample.in en este caso cin >> nombre; // Utilizar sample.in en este caso
ifstream input; ifstream input;
input.open(nombre); input.open(nombre);
if (!input) if (!input)
...@@ -27,7 +27,7 @@ int main() ...@@ -27,7 +27,7 @@ int main()
n = stoi(linea); n = stoi(linea);
// Creamos un array para alojar los números a evaluar y seguimos leyendo el archivo // Creamos un array para alojar los números a evaluar y seguimos leyendo el archivo
int numeros[n], cont=0; long int numeros[n], cont=0;
while (getline(input, linea)) while (getline(input, linea))
{ {
numeros[cont] = stoi(linea); numeros[cont] = stoi(linea);
...@@ -44,13 +44,13 @@ int main() ...@@ -44,13 +44,13 @@ int main()
cout << "]" << endl; cout << "]" << endl;
// Declaramos el array con las respuestas e iniciamos a comprobar factores desde 1 hasta el orden del número para cada número // Declaramos el array con las respuestas e iniciamos a comprobar factores desde 1 hasta el orden del número para cada número
int respuestas[n]; long int respuestas[n];
for (int i = 0; i<n; i++) for (int i = 0; i<n; i++)
{ {
for (int fac = 1; fac < pow(10, ceil(log10(numeros[i]))); fac++) // La función techo del log en base 10 permite saber la cantidad de dígitos for (long int fac = 1; fac < pow(10, ceil(log10(numeros[i]))); fac++) // La función techo del log en base 10 permite saber la cantidad de dígitos
{ {
// Hallamos el producto y verificamos si su raiz es perfecta o no // Hallamos el producto y verificamos si su raiz es perfecta o no
int producto = numeros[i] * fac; long int producto = numeros[i] * fac;
if (sqrt(producto) == round(sqrt(producto))) if (sqrt(producto) == round(sqrt(producto)))
{ {
respuestas[i] = fac; // Si es perfecta, asignamos el valor a la respuesta respuestas[i] = fac; // Si es perfecta, asignamos el valor a la respuesta
......
No preview for this file type
4 3
4 4
8 8
12 12
3500642 \ No newline at end of file
\ No newline at end of file
No preview for this file type
No preview for this file type
8 8
10 10
50
0 0
No preview for this file type
2 2
3 3
4
5
0 0
\ No newline at end of file
...@@ -76,7 +76,7 @@ int main() ...@@ -76,7 +76,7 @@ int main()
for (int j=pow(10,(vectors[i].size()/2)-1); j<pow(10,vectors[i].size()/2); j++) for (int j=pow(10,(vectors[i].size()/2)-1); j<pow(10,vectors[i].size()/2); j++)
{ {
// Si el cociente no tiene residuo, y tiene la cantidad de digitos necesarios, se guardan el cociente y el divisor // Si el cociente no tiene residuo, y tiene la cantidad de digitos necesarios, se guardan el cociente y el divisor
if ((numeros[i]/j)%1 == 0 && (numeros[i]/j)>=pow(10,(vectors[i].size()/2)-1) && (numeros[i]/j)<pow(10,(vectors[i].size()/2))) if ((numeros[i]/j) == round((numeros[i]/j)) && (numeros[i]/j)>=pow(10,(vectors[i].size()/2)-1) && (numeros[i]/j)<pow(10,(vectors[i].size()/2)))
{ {
divisores.push_back(j); divisores.push_back(j);
cocientes.push_back(numeros[i]/j); cocientes.push_back(numeros[i]/j);
......
No preview for this file type
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment