Dev - C++ - Quién me ayuda a entender este código de C++? for con punto y coma

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 8 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Quién me ayuda a entender este código de C++? for con punto y coma

Publicado por Flor (1 intervención) el 01/03/2018 22:22:57
Mi duda es que nunca había visto un for con punto y coma.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//Números primos.
#include<iostream>
using namespace std;
 
int main(){
 
unsigned int numero, n, p, num_columnas;
cout <<"Introduzca hasta que numero quiere llegar ";
cin >> numero;
cout <<'n' << endl;
num_columnas = 0 ;
n=2;
while (n <= numero){
for ( p = 2; n % p!= 0; p++);
if ( p == n){
cout << n <<", ";
if(++num_columnas % 10 == 0)// controla el numero de elementos en una fila 
cout <<"n" << endl;
}
n++;
}
 
cout <<"Fin de Programa. n" << endl;
system ("pause"producto cruz;
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Quién me ayuda a entender este código de C++? for con punto y coma

Publicado por Thanatos (199 intervenciones) el 03/03/2018 23:48:04
La línea 14:
1
for (p = 2; n % p != 0; p++);

Se puede escribir de esta manera:
1
2
3
for (p = 2; n % p != 0; p++) {
 
}

Las operaciones que el programador necesitaba realizar ocurren dentro del paréntesis del for, por eso no incluyó el bloque de instrucciones que (normalmente van entre llaves) y terminó esa línea con punto y coma.

Lo que hace la línea 14 es encontrar el primer divisor p, que divide exactamente a n.
En la línea 15 verifica si el divisor p es igual a n, si son iguales, quiere decir que n es primo, porque no se encontró ningún otro divisor que divida a n exactamente (con residuo igual a cero).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar