0

I am using scratch. I acquire two values from the user and have to find the numbers divisible by 2 & 3 between those values . How can I count those numbers without using arrays ( just by using basic operations) ?

zee
  • 1
  • 1

2 Answers2

2

If you only need to count those numbers, arrays are not needed. Just iterate through the range and count:

bereal
  • 32,519
  • 6
  • 58
  • 104
  • 1
    +1 for correctness, but is there any reason you use `set [variable] to ((variable) + (1))` instead of just `change [variable] by (1)`? – Scimonster Jun 08 '15 at 12:08
  • @Scimonster the reason is that I didn't notice that feature :) Thanks for the correction! – bereal Jun 08 '15 at 12:13
0

Here's what you can do (do mind me, I am not good at creating questions and variables) ...

    when flag clicked
    ask (starting number is?) and wait
    set (startrange) to (answer)
    ask (ending number is?) and wait
    set (endrange) to (answer)
    set (counter) to (startrange)
    set (divisibleby2) to (0)
    set (divisibleby3) to (0)
    set (divisibleby6) to (0)
    repeat until counter = endrange
    if (counter) mod 6 = 0
    change (divisibleby6) by (1)
    else
    if (counter) mod 3 = 0
    change (divisibleby3) by (1)
    else
    if (counter) mod 2 = 0
    change (divisibleby2) by (1)
    say (join (The number of numbers from the two inputs that are divisible by 2, 3 is) ((divisibleby2) + ((divisibleby3) + (divisibleby6)))

So, why is a divisibleby6 variable needed? It is because some numbers are divisible by 2 and 3 simultaneously, which means, the number would be recorded twice if the code was altered. However, if you want this to happen, this would be the code for you:

hen flag clicked
    ask (starting number is?) and wait
    set (startrange) to (answer)
    ask (ending number is?) and wait
    set (endrange) to (answer)
    set (counter) to (startrange)
    set (divisibleby2) to (0)
    set (divisibleby3) to (0)
    repeat until counter = endrange
    if (counter) mod 3 = 0
    change (divisibleby3) by (1)
    if (counter) mod 2 = 0
    change (divisibleby2) by (1)
    say (join (The number of numbers from the two inputs that are divisible by 2, 3 is) ((divisibleby2) + (divisibleby3))
Account_2
  • 53
  • 6