logicmathThere are 1 million closed school lockers in a row, labeled 1 through 1,000,000.
You first go through and flip every locker open.
Then you go through and flip every other locker (locker 2, 4, 6, etc...). When you're done, all the even-numbered lockers are closed.
You then go through and flip every third locker (3, 6, 9, etc...). "Flipping" mean you open it if it's closed, and close it if it's open. For example, as you go through this time, you close locker 3 (because it was still open after the previous run through), but you open locker 6, since you had closed it in the previous run through.
Then you go through and flip every fourth locker (4, 8, 12, etc...), then every fifth locker (5, 10, 15, etc...), then every sixth locker (6, 12, 18, etc...) and so on. At the end, you're going through and flipping every 999,998th locker (which is just locker 999,998), then every 999,999th locker (which is just locker 999,999), and finally, every 1,000,000th locker (which is just locker 1,000,000).
At the end of this, is locker 1,000,000 open or closed?

Locker 1,000,000 will be open.
If you think about it, the number of times that each locker is flipped is equal to the number of factors it has. For example, locker 12 has factors 1, 2, 3, 4, 6, and 12, and will thus be flipped 6 times (it will end be flipped when you flip every one, every 2nd, every 3rd, every 4th, every 6th, and every 12th locker). It will end up closed, since flipping an even number of times will return it to its starting position. You can see that if a locker number has an even number of factors, it will end up closed. If it has an odd number of factors, it will end up open.
As it turns out, the only types of numbers that have an odd number of factors are squares. This is because factors come in pairs, and for squares, one of those pairs is the square root, which is duplicated and thus doesn't count twice as a factor. For example, 12's factors are 1 x 12, 2 x 6, and 3 x 4 (6 total factors). On the other hand, 16's factors are 1 x 16, 2 x 8, and 4 x 4 (5 total factors).
So lockers 1, 4, 9, 16, 25, etc... will all be open. Since 1,000,000 is a square number (1000 x 1000), it will be open as well.

## Similar riddles

See also best riddles or new riddles.

logicmathUsing only and all the numbers 3, 3, 7, 7, along with the arithmetic operations +,-,*, and /, can you come up with a calculation that gives the number 24? No decimal points allowed.
[For example, to get the number 14, we could do 3 * (7 - (7 / 3))]

7 * ((3 / 7) + 3) = 24

logicmathTwo words are anagrams if and only if they contain the exact same letters with the exact same frequency (for example, "name" and "mean" are anagrams, but "red" and "deer" are not).
Given two strings S1 and S2, which each only contain the lowercase letters a through z, write a program to determine if S1 and S2 are anagrams. The program must have a running time of O(n + m), where n and m are the lengths of S1 and S2, respectively, and it must have O(1) (constant) space usage.

First create an array A of length 26, representing the counts of each letter of the alphabet, with each value initialized to 0. Iterate through each character in S1 and add 1 to the corresponding entry in A. Once this iteration is complete, A will contain the counts for the letters in S1. Then, iterate through each character in S2, and subtract 1 from each corresponding entry in A. Now, if the each entry in A is 0, then S1 and S2 are anagrams; otherwise, S1 and S2 aren't anagrams.
Here is pseudocode for the procedure that was described:
def areAnagrams(S1, S2)
A = new Array(26)
A.initializeValues(0)
for each character in S1
arrayIndex = mapCharacterToNumber(character) //maps "a" to 0, "b" to 1, "c" to 2, etc...
A[arrayIndex] += 1
end
for each character in S2
arrayIndex = mapCharacterToNumber(character)
A[arrayIndex] -= 1
end
for (i = 0; i < 26; i++)
if A[i] != 0
return false
end
end
return true
end

logicmathshortCan you find four consecutive prime numbers that add up to 220?

47 + 53 + 59 + 61 = 220

logicmathSam has got three daughters. The eldest daughter is the most honest girl in the universe and she always speaks truth. The middle daughter is a modest woman. She speaks truth and lies according to the situations. The youngest one never speaks truth. Not a single word she spoke was true and would never be true.
Sam brought a marriage proposal for one of his girls. It was John. John wanted to marry either the eldest or the youngest daughter of Sam as he can easily identify whether the girl speaks truth or lie!
John told his desire to Sam. However, Sam laid a condition. He told John that he will not say who the eldest, middle or youngest one is. Also, he allowed john to ask only one question to identify the eldest or youngest so he can marry one.
John asked one question and found the right girl. What was the question and whom should he pick?
He asks this question to one of the daughters.
If he asked this question to older daughter pointing at other two, he probably would know the youngest one! NO matter, she always speaks truth.
If he asked the question to middle one, probably he can choose either.
If he asked the youngest one, she always lies and he can find eldest one! No matter, he has to choose the youngest one based on the answer.

The question he asked is, ‘Is she older than her!’
He asks this question to one of the daughters.
If he asked this question to older daughter pointing at other two, he probably would know the youngest one! NO matter, she always speaks truth.
If he asked the question to middle one, probably he can choose either.
If he asked the youngest one, she always lies and he can find eldest one. No matter, he has to choose the youngest one based on the answer.

logicmathshortTake 9 from 6, 10 from 9, 50 from 40 and leave 6. How is it possible?

SIX - 9 (IX) = S
9 (IX) - 10 (X) = I
40 (XL) - 50 (L) = X

logicmathI know a number which when multiplied by multiple of 9 i.e 9 18 27 36 45 ... The output consist of number containing only one digit.
Can you identify the number?

12345679
12345679 × 9 = 111111111 (only 1s)
12345679 × 18 = 222222222 (only 2s)
12345679 × 27 = 333333333 (only 3s)
12345679 × 36 = 444444444 (only 4s)
12345679 × 45 = 555555555 (only 5s)

logicmathThree people check into a hotel room. The bill is $30 so they each pay $10. After they go to the room, the hotel's cashier realizes that the bill should have only been $25. So he gives $5 to the bellhop and tells him to return the money to the guests. The bellhop notices that $5 can't be split evenly between the three guests, so he keeps $2 for himself and then gives the other $3 to the guests.
Now the guests, with their dollars back, have each paid $9 for a total of $27. And the bellhop has pocketed $2. So there is $27 + $2 = $29 accounted for. But the guests originally paid $30. What happened to the other dollar?

This riddle is just an example of misdirection. It is actually nonsensical to add $27 + $2, because the $27 that has been paid includes the $2 the bellhop made.
The correct math is to say that the guests paid $27, and the bellhop took $2, which, if given back to the guests, would bring them to their correct payment of $27 - $2 = $25.

animallogicmathThere are several chickens and rabbits in a cage (with no other types of animals). There are 72 heads and 200 feet inside the cage. How many chickens are there, and how many rabbits?

Let c be the number of chickens, and r be the number of rabbits.
r + c = 72
4r + 2c = 200
To solve the equations, we multiply the first by two, then subtract the second.
2r + 2c = 144
2r = 56
r = 28
c = 44
So there are 44 chickens and 28 rabbits in the cage.

logicmathshortCan you arrange four 9's and use of atmost 2 math symbols, make the total be 100?

99 / .99

logicmathshort

Think of a number. Double it. Add ten. Half it. Take away the number you started with. What is your number?

Your number is 5.