Do not expect a SQL answer there. My daughter (9) came from school with this question, and I suspect the expected homework was to google for an answer. I am pretty schocked of such practice, teacher encouraging google to do your homework are clearly not from my generation…

Ok, back to the rules, pen and paper. We write down all numbers from 1 to 1000, we start graying out the 1, then the 4,6,8,10,12,… Then the 9 15 21 27 … Then the 25, 35, 55, … Then ~~7~~, 49, 77, … And so on.

*2016-08-04 : no reader realised 7 is prime?*

After having grayed out 1 one, 499 twos, 166 threes, 66 fives, 37 sevens, 20 elevens, 16 thirteens, 10 seventeens, 8 nineteens, 6 twentythrees, 2 twentynines and 1 thirtyone, we counted the remaining numbers and got to the solution. We used the calculator, to gray out numbers like 23*43. But for sure no google there.

I had a similar feeling when my boy teacher ask my boy to look for a description of some exotic butterfly on wikipedia. Is this all what new generations kids can do? Search on google?

Back to google, I once asked in an interview to a young candidate : “How would you speed up a cursor for loop that increases the salary of the employees by 10% ?”. Answer : “I would search on google”.

Not worth mentioning all my traumatic experiences with IT specialists who advise to turn on some tuning magic they found on google to solve their own performance issue with poorly written code.

Using google is good. But do your homework kids π

at least they could learn how to use wolframalpha (and explain it to me then ) !

Did you use the sieve of Eratosthenes for this?

http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

maybe you even googled it π

Totally agree on the sentiments, they never used google when I was at school.

@Sokrates

got it myself, easy enough

http://tinyurl.com/3brdkpx

but you’re right of course

when we were young, we didn’t google.

we had to prove stuff like this

select count(*) from (

with

n as (select level+1 n from dual connect by level+1 <= 1000),

f as (select n from n where n <= sqrt(1000))

select n from n

minus

select f1.n * f2.n from f f1, n f2

)

@jason Nice colors π actually I had to write down on paper the solutions using repeating pattern, like the number of two until 2 times 500 minus the two itself, the number of three not multiple of 2 until 2*3, the number of 5 until 2*3*5, the number of 7 until 2*3*5*7 and for the rest just write down 11*(11,13,17,19,23,29,31,37,39,41,43,47,53,59,61,67,71,73,79,83,89) etc

@sokrates hmm, I wanted to have something my daughter could find amusing π

Itβs said that one day a colleague of the famous scientist Dr. Albert Einstein asked him for his phone number. The colleague became perplexed when he watched Einstein grab a phone book to look it up. Baffled, the colleague asked, βYou donβt know your own phone number?β Einstein replied, βOf course not! β¦ Why would I remember anything I can look up?β

Einstein made it a regular practice not to cloud his thinking with anything he could look up in under two minutes.

To see all prime numbers under 1000:

WITH x AS (

SELECT ROWNUM n

FROM dual

CONNECT BY LEVEL<=1000)

SELECT x.N, is_prime

FROM x, LATERAL (SELECT CASE WHEN COUNT(*)=2 THEN 1 ELSE 0 END is_prime

FROM dual

WHERE MOD(x.N, LEVEL)=0

CONNECT BY LEVEL<=x.N)

WHERE is_prime=1

For a more interesting puzzle on prime numbers and various solutions to it check this out:

https://sqlpatterns.wordpress.com/2016/05/23/solutuions-to-puzzle-of-the-week-12/