Special odd numbers: Difference between revisions
Content added Content deleted
(Added C# entry, cleaned up Ring entry (it wasn't producing all 194 results)) |
(Added Algol 68) |
||
Line 5: | Line 5: | ||
Odd numbers of the form p*q where p and q are distinct primes, where '''p*q < 1000''' |
Odd numbers of the form p*q where p and q are distinct primes, where '''p*q < 1000''' |
||
<br><br> |
<br><br> |
||
=={{header|ALGOL 68}}== |
|||
<lang algol68>BEGIN # find some odd square free semi-primes # |
|||
# numbers of the form p*q where p =/= q and p, q are prime # |
|||
# reurns a list of primes up to n # |
|||
PROC prime list = ( INT n )[]INT: |
|||
BEGIN |
|||
# sieve the primes to n # |
|||
INT no = 0, yes = 1; |
|||
[ 1 : n ]INT p; |
|||
p[ 1 ] := no; p[ 2 ] := yes; |
|||
FOR i FROM 3 BY 2 TO n DO p[ i ] := yes OD; |
|||
FOR i FROM 4 BY 2 TO n DO p[ i ] := no OD; |
|||
FOR i FROM 3 BY 2 TO ENTIER sqrt( n ) DO |
|||
IF p[ i ] = yes THEN FOR s FROM i * i BY i + i TO n DO p[ s ] := no OD FI |
|||
OD; |
|||
# replace the sieve with a list # |
|||
INT p pos := 0; |
|||
FOR i TO n DO IF p[ i ] = yes THEN p[ p pos +:= 1 ] := i FI OD; |
|||
p[ 1 : p pos ] |
|||
END # prime list # ; |
|||
# show odd square free semi-primes up to 1000 # |
|||
INT max number = 1000; |
|||
[]INT prime = prime list( 100 * max number ); # (very) rough approximation of where the last prime under 1001 is # |
|||
[ 1 : max number ]BOOL numbers; FOR i TO max number DO numbers[ i ] := FALSE OD; |
|||
FOR i FROM 2 TO max number - 1 DO |
|||
FOR j FROM i + 1 TO max number |
|||
WHILE INT pq = prime[ i ] * prime[ j ]; |
|||
pq < max number |
|||
DO |
|||
numbers[ pq ] := TRUE |
|||
OD |
|||
OD; |
|||
INT n count := 0; |
|||
FOR i TO max number DO |
|||
IF numbers[ i ] THEN |
|||
print( ( " ", whole( i, -4 ) ) ); |
|||
n count +:= 1; |
|||
IF n count MOD 20 = 0 THEN print( ( newline ) ) FI |
|||
FI |
|||
OD |
|||
END</lang> |
|||
{{out}} |
|||
<pre> |
|||
15 21 33 35 39 51 55 57 65 69 77 85 87 91 93 95 111 115 119 123 |
|||
129 133 141 143 145 155 159 161 177 183 185 187 201 203 205 209 213 215 217 219 |
|||
221 235 237 247 249 253 259 265 267 287 291 295 299 301 303 305 309 319 321 323 |
|||
327 329 335 339 341 355 365 371 377 381 391 393 395 403 407 411 413 415 417 427 |
|||
437 445 447 451 453 469 471 473 481 485 489 493 497 501 505 511 515 517 519 527 |
|||
533 535 537 543 545 551 553 559 565 573 579 581 583 589 591 597 611 623 629 633 |
|||
635 649 655 667 669 671 679 681 685 687 689 695 697 699 703 707 713 717 721 723 |
|||
731 737 745 749 753 755 763 767 771 779 781 785 789 791 793 799 803 807 813 815 |
|||
817 831 835 843 849 851 865 869 871 879 889 893 895 899 901 905 913 917 921 923 |
|||
933 939 943 949 951 955 959 965 973 979 985 989 993 995 |
|||
</pre> |
|||
=={{header|C#|CSharp}}== |
=={{header|C#|CSharp}}== |