Cien luces en una habitación están dispuestas en fila. Completa los números de izquierda a derecha, 2, 3...100.
# include
# define LAMP_NUM 100 //El número de lámparas
int main (void)
{
int i, j, num, length=0;
for(i=1; i<=LAMP_NUM; ++i) //i-ésima lámpara
{
num = 0; // ¿Cuántas veces se ha apagado la i-ésima lámpara?
for(j=1; j<=i; ++ j)// ¿Cuántos divisores incluye 1 la lámpara i-ésima?
{
if(i%j == 0)
++num ;
}
if( num%2 != 0) //Pulse varias veces
{
printf("El % La luz dth está encendida\n", i);
++lenght;
}
}
printf("\ n*** %d luces están encendidas\n", longitud);
return 0;
}
/******** *********************************
La primera luz está encendida
La cuarta luz está encendida
La novena luz está encendida
La 16.ª luz está encendida
La 25.ª luz es brillante
La lámpara 36 está brillante
La lámpara 49 está brillante
La lámpara 64 está brillante
La luz 81 está encendida
La La luz número 100 está encendida
***10 luces están encendidas
Presiona cualquier tecla para continuar
************** ********************************* */
Encontrado en la salida
4 -1 = 3
9 - 4 = 5
16 - 9 = 7
p>25 - 16 = 9
Empezar desde 1
La primera lámpara es len = 1 num = 3
La segunda lámpara es len=len+num=4 num=num+2=5 p>
La tercera pila de luces es len = len+num=9 num=num+2=7
La cuarta luz La lámpara es len = len+num=16 num = num+2 =9
La quinta lámpara es len=len+num=25 num = num+2 = 12
............... ......
Aunque no entiendo el origen de esta regla, debería ser posible compilar código más rápido