Smith numbers: Difference between revisions

Content added Content deleted
(Realize in F#)
(Add MAD)
Line 1,916: Line 1,916:
Checkit
Checkit
</lang>
</lang>

=={{header|MAD}}==

<lang MAD> NORMAL MODE IS INTEGER
PRINT COMMENT$ SMITH NUMBERS$
R GENERATE PRIMES UP TO 10,000 USING SIEVE METHOD
BOOLEAN SIEVE
DIMENSION SIEVE(10000)
DIMENSION PRIMES(1500)
THROUGH SET, FOR I=2, 1, I.G.10000
SET SIEVE(I) = 1B

THROUGH NXPRIM, FOR P=2, 1, P.G.100
WHENEVER SIEVE(P)
THROUGH MARK, FOR I=P*P, P, I.G.10000
MARK SIEVE(I) = 0B
NXPRIM END OF CONDITIONAL

NPRIMS = 0
THROUGH CNTPRM, FOR P=2, 1, P.G.10000
WHENEVER SIEVE(P)
PRIMES(NPRIMS) = P
NPRIMS = NPRIMS + 1
CNTPRM END OF CONDITIONAL
R CHECK SMITH NUMBERS
THROUGH SMITH, FOR I=4, 1, I.GE.10000
WHENEVER .NOT. SIEVE(I)
K = I
PFSUM = 0
THROUGH FACSUM, FOR P=0, 1, P.GE.NPRIMS .OR. K.E.0
L = PRIMES(P)
FACDIV WHENEVER K/L*L.E.K .AND. K.NE.0
PFSUM = PFSUM + DGTSUM.(L)
K = K/L
TRANSFER TO FACDIV
FACSUM END OF CONDITIONAL
WHENEVER PFSUM.E.DGTSUM.(I), PRINT FORMAT NUMFMT,I
SMITH END OF CONDITIONAL
VECTOR VALUES NUMFMT = $I5*$
R GET SUM OF DIGITS OF N
INTERNAL FUNCTION(N)
ENTRY TO DGTSUM.
DSUM = 0
DNUM = N
LOOP WHENEVER DNUM.E.0, FUNCTION RETURN DSUM
DSUM = DSUM + DNUM-DNUM/10*10
DNUM = DNUM/10
TRANSFER TO LOOP
END OF FUNCTION
END OF PROGRAM</lang>

{{out}}
<pre style='height: 40ex;'>SMITH NUMBERS
4
22
27
58
85
94
121
166
202
265
274
319
346
355
378
382
391
438
454
483
517
526
535
562
576
588
627
634
636
645
648
654
663
666
690
706
728
729
762
778
825
852
861
895
913
915
922
958
985
1086
1111
1165
1219
1255
1282
1284
1376
1449
1507
1581
1626
1633
1642
1678
1736
1755
1776
1795
1822
1842
1858
1872
1881
1894
1903
1908
1921
1935
1952
1962
1966
2038
2067
2079
2155
2173
2182
2218
2227
2265
2286
2326
2362
2366
2373
2409
2434
2461
2475
2484
2515
2556
2576
2578
2583
2605
2614
2679
2688
2722
2745
2751
2785
2839
2888
2902
2911
2934
2944
2958
2964
2965
2970
2974
3046
3091
3138
3168
3174
3226
3246
3258
3294
3345
3366
3390
3442
3505
3564
3595
3615
3622
3649
3663
3690
3694
3802
3852
3864
3865
3930
3946
3973
4054
4126
4162
4173
4185
4189
4191
4198
4209
4279
4306
4369
4414
4428
4464
4472
4557
4592
4594
4702
4743
4765
4788
4794
4832
4855
4880
4918
4954
4959
4960
4974
4981
5062
5071
5088
5098
5172
5242
5248
5253
5269
5298
5305
5386
5388
5397
5422
5458
5485
5526
5539
5602
5638
5642
5674
5772
5818
5854
5874
5915
5926
5935
5936
5946
5998
6036
6054
6084
6096
6115
6171
6178
6187
6188
6252
6259
6295
6315
6344
6385
6439
6457
6502
6531
6567
6583
6585
6603
6684
6693
6702
6718
6760
6816
6835
6855
6880
6934
6981
7026
7051
7062
7068
7078
7089
7119
7136
7186
7195
7227
7249
7287
7339
7402
7438
7447
7465
7503
7627
7674
7683
7695
7712
7726
7762
7764
7782
7784
7809
7824
7834
7915
7952
7978
8005
8014
8023
8073
8077
8095
8149
8154
8158
8185
8196
8253
8257
8277
8307
8347
8372
8412
8421
8466
8518
8545
8568
8628
8653
8680
8736
8754
8766
8790
8792
8851
8864
8874
8883
8901
8914
9015
9031
9036
9094
9166
9184
9193
9229
9274
9276
9285
9294
9296
9301
9330
9346
9355
9382
9386
9387
9396
9414
9427
9483
9522
9535
9571
9598
9633
9634
9639
9648
9657
9684
9708
9717
9735
9742
9760
9778
9840
9843
9849
9861
9880
9895
9924
9942
9968
9975
9985</pre>


=={{header|Maple}}==
=={{header|Maple}}==