1, 2, 3, 4, 5, Shaggy - Programming Puzzles

This is a game where you must count to number from 0 to 1000. However, if the number has a 6 in it, or is divisible by 6, you don't say the number. Instead, you say "Shaggy".

Rules:

  • You can't hard-code the numbers.
  • The number only has to satisfy at least 1 of the following requirements
    • Divisible by 6
    • Number contains a 6
  • Some type of separator is mandatory (12345Shaggy7.. doesn't count)
  • You must count exactly to 1000 from 1.
  • The numbers must be output, but it doesn't matter how (e.g., stdout, writing to a text file, etc.).

Solutions

Jump to C, Swift, JavaScript, PHP Solution.
You can submit your own solution in comment section in same/different programming language. If your solution is better or in different language we'll add here.

C

#include <stdio.h>

int main()
{
    for(int i=1;i<=1000;++i)
    {
        if(i%6)
        {
            for(int m=i;(m>0);m/=10) if (m%10==6) goto l;
            printf("%d,",i);
            continue;
        }
        printf("Shaggy,");
    }
    return 0;
}

Swift

import Foundation

for i in 1...1000 {
    print(i%6<1 || (String(i).range(of: "6") != nil) ? "Shaggy" : "\(i)")
}


JavaScript

<html>
<body>
    <p id="print"></p>
    <script>
        for(i=0;i++<1000;)
        document.getElementById('print').innerHTML += i%6<1|/6/.test(i)?'Shaggy\n':i+'\n';
    </script>
</body>
</html>

PHP

<?
for(;1000>$i++;)
    echo$i%6*!strpbrk($i,6)?$i:Shaggy,"\n";

You've successfully subscribed to Developer Insider
Great! Next, complete checkout for full access to Developer Insider
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.