Strange numbers

From Rosetta Code
Revision as of 13:25, 22 February 2021 by CalmoSoft (talk | contribs)
Strange numbers is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

n is a strange number is a positive integer where every adjacent digit differs from its neighbour by prime number.
Let 100<n<500

Ring

<lang ring> load "stdlib.ring"

row = 0 see "Strange numbers are:"

for n = 100 to 500

   flag = 1
   str = string(n)
   for m = 1 to len(str)-1
       num1 = number(str[m])
       num2 = number(str[m+1])
       pr = fabs(num1-num2)
       if not isprime(pr)
          flag = 0
          exit
       ok
    next
    if flag = 1
       row = row + 1
       if (row-1) % 11 = 0
          see nl
       else
          see " " + str
       ok
    ok

next </lang>

Output:
Nice numbers are:
 131 135 136 138 141 142 146 147 149 161
 164 168 169 181 183 185 186 202 203 205
 241 242 246 247 249 250 252 253 257 258
 272 274 275 279 292 294 296 297 302 303
 307 313 314 316 318 350 352 353 357 358
 363 364 368 369 381 383 385 386 413 414
 418 420 424 425 427 429 461 463 464 468
 470 472 474 475 479 492 494 496 497