Pregunta

I tried to make a simple loop in Maple which would exclude squares.
Below is my code. I already know that it wouldn't work. As the while code only runs if n is a square, so it would never print. I then want to take the number of divisors but I'm pretty confident on how to do this. I just need something to give n as a random integer that isn't a square.

n := rand(0 .. 100);

while n=1 or n=4 or n=9 or n=16 or n=25 or n=36 or n=49 or n=64 or n=81 or n=100 do

if n=1 or n=4 or n=9 or n=16 or n=25 or n=36 or n=49 or n=64 or n=81 or n=100 then 

n := rand(0 .. 100);   *(how do I send Maple back up to the start of the loop again?)* 

end if; 

print (n);

end do:
¿Fue útil?

Solución

Note that the call rand(a..b) does not generate a random number. Rather, it generates a procedure which will generate a random number in the given range. What you want is

    R:= rand(2..99):
    n:= R():
    while isqrt(n)^2 = n do n:= R() end do: 
    n;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top