Multiplicatively perfect numbers: Difference between revisions

→‎{{header|Wren}}: Largely rewritten following addition of stretch goal.
(Added a stretch goal.)
(→‎{{header|Wren}}: Largely rewritten following addition of stretch goal.)
Line 243:
{{libheader|Wren-math}}
{{libheader|Wren-fmt}}
These are what are called 'multiplicatively perfect numbers' (see [https://oeis.org/A007422 OEIS-A00742]).
 
If this is intended to be a draft task, then I think the title should be changed to that.
<syntaxhighlight lang="ecmascript">import "./math" for Int, Nums
import "./fmt" for Fmt
 
var limit = 500
var count = 0
System.print("Special numbers under %(limit):")
var i = 0
for (i in 1...limit) {
System.print("Multiplicatively perfect numbers under %(limit):")
while (true) {
var pd = Int.properDivisors(i).skip(1)
if (pd.count > 1 && Nums.prod(pd) == i) {
var pdscount = pd.map { |d| Fmt.d(3, d) }.join("count x+ ")1
Fmt.printif ("$3di < =500) $s", i, pds){
var pds = pd.map { |d| Fmt.d(3, d) }.join(" x ")
Fmt.write("$3d = $s ", i, pds)
if (count % 4 == 0) System.print()
}
}
if (i == 499) System.print("\n")
if (i >= limit - 1) {
var squares = Int.primeSieve((limit - 1).sqrt.floor).count
var cubes = Int.primeSieve((limit - 1).cbrt.floor).count
var count2 = count + squares - cubes
Fmt.print("Counts under $,7d: MPNs = $,7d Semi-primes = $,7d", limit, count, count2)
if (limit == 500000) return
limit = limit * 10
}
i = i + 1
}</syntaxhighlight>
 
{{out}}
<pre>
SpecialMultiplicatively perfect numbers under 500:
6 = 2 x 3 8 = 2 x 4 10 = 2 x 5 14 = 2 x 7
15 = 3 x 5 21 = 3 x 7 22 = 2 x 11 26 = 2 x 13
8 = 2 x 4
27 = 3 x 9 33 = 3 x 11 34 = 2 x 17 35 = 5 x 7
10 = 2 x 5
38 = 2 x 19 39 = 3 x 13 46 = 2 x 23 51 = 3 x 17
14 = 2 x 7
55 = 5 x 11 57 = 3 x 19 58 = 2 x 29 62 = 2 x 31
15 = 3 x 5
65 = 5 x 13 69 = 3 x 23 74 = 2 x 37 77 = 7 x 11
21 = 3 x 7
82 = 2 x 41 85 = 5 x 17 86 = 2 x 43 87 = 3 x 29
22 = 2 x 11
91 = 7 x 13 93 = 3 x 31 94 = 2 x 47 95 = 5 x 19
26 = 2 x 13
106 = 2 x 53 111 = 3 x 37 115 = 5 x 23 118 = 2 x 59
27 = 3 x 9
119 = 7 x 17 122 = 2 x 61 123 = 3 x 41 125 = 5 x 25
33 = 3 x 11
129 = 3 x 43 133 = 7 x 19 134 = 2 x 67 141 = 3 x 47
34 = 2 x 17
142 = 2 x 71 143 = 11 x 13 145 = 5 x 29 146 = 2 x 73
35 = 5 x 7
155 = 5 x 31 158 = 2 x 79 159 = 3 x 53 161 = 7 x 23
38 = 2 x 19
166 = 2 x 83 177 = 3 x 59 178 = 2 x 89 183 = 3 x 61
39 = 3 x 13
185 = 5 x 37 187 = 11 x 17 194 = 2 x 97 201 = 3 x 67
46 = 2 x 23
202 = 2 x 101 203 = 7 x 29 205 = 5 x 41 206 = 2 x 103
51 = 3 x 17
209 = 11 x 19 213 = 3 x 71 214 = 2 x 107 215 = 5 x 43
55 = 5 x 11
217 = 7 x 31 218 = 2 x 109 219 = 3 x 73 221 = 13 x 17
57 = 3 x 19
226 = 2 x 113 235 = 5 x 47 237 = 3 x 79 247 = 13 x 19
58 = 2 x 29
249 = 3 x 83 253 = 11 x 23 254 = 2 x 127 259 = 7 x 37
62 = 2 x 31
262 = 2 x 131 265 = 5 x 53 267 = 3 x 89 274 = 2 x 137
65 = 5 x 13
278 = 2 x 139 287 = 7 x 41 291 = 3 x 97 295 = 5 x 59
69 = 3 x 23
298 = 2 x 149 299 = 13 x 23 301 = 7 x 43 302 = 2 x 151
74 = 2 x 37
303 = 3 x 101 305 = 5 x 61 309 = 3 x 103 314 = 2 x 157
77 = 7 x 11
319 = 11 x 29 321 = 3 x 107 323 = 17 x 19 326 = 2 x 163
82 = 2 x 41
327 = 3 x 109 329 = 7 x 47 334 = 2 x 167 335 = 5 x 67
85 = 5 x 17
339 = 3 x 113 341 = 11 x 31 343 = 7 x 49 346 = 2 x 173
86 = 2 x 43
355 = 5 x 71 358 = 2 x 179 362 = 2 x 181 365 = 5 x 73
87 = 3 x 29
371 = 7 x 53 377 = 13 x 29 381 = 3 x 127 382 = 2 x 191
91 = 7 x 13
386 = 2 x 193 391 = 17 x 23 393 = 3 x 131 394 = 2 x 197
93 = 3 x 31
395 = 5 x 79 398 = 2 x 199 403 = 13 x 31 407 = 11 x 37
94 = 2 x 47
411 = 3 x 137 413 = 7 x 59 415 = 5 x 83 417 = 3 x 139
95 = 5 x 19
422 = 2 x 211 427 = 7 x 61 437 = 19 x 23 445 = 5 x 89
106 = 2 x 53
446 = 2 x 223 447 = 3 x 149 451 = 11 x 41 453 = 3 x 151
111 = 3 x 37
454 = 2 x 227 458 = 2 x 229 466 = 2 x 233 469 = 7 x 67
115 = 5 x 23
471 = 3 x 157 473 = 11 x 43 478 = 2 x 239 481 = 13 x 37
118 = 2 x 59
482 = 2 x 241 485 = 5 x 97 489 = 3 x 163 493 = 17 x 29
119 = 7 x 17
122497 = 27 x 6171
 
123 = 3 x 41
Counts under 500: MPNs = 149 Semi-primes = 153
125 = 5 x 25
Counts under 5,000: MPNs = 1,353 Semi-primes = 1,365
129 = 3 x 43
Counts under 50,000: MPNs = 12,073 Semi-primes = 12,110
133 = 7 x 19
Counts under 500,000: MPNs = 108,222 Semi-primes = 108,326
134 = 2 x 67
141 = 3 x 47
142 = 2 x 71
143 = 11 x 13
145 = 5 x 29
146 = 2 x 73
155 = 5 x 31
158 = 2 x 79
159 = 3 x 53
161 = 7 x 23
166 = 2 x 83
177 = 3 x 59
178 = 2 x 89
183 = 3 x 61
185 = 5 x 37
187 = 11 x 17
194 = 2 x 97
201 = 3 x 67
202 = 2 x 101
203 = 7 x 29
205 = 5 x 41
206 = 2 x 103
209 = 11 x 19
213 = 3 x 71
214 = 2 x 107
215 = 5 x 43
217 = 7 x 31
218 = 2 x 109
219 = 3 x 73
221 = 13 x 17
226 = 2 x 113
235 = 5 x 47
237 = 3 x 79
247 = 13 x 19
249 = 3 x 83
253 = 11 x 23
254 = 2 x 127
259 = 7 x 37
262 = 2 x 131
265 = 5 x 53
267 = 3 x 89
274 = 2 x 137
278 = 2 x 139
287 = 7 x 41
291 = 3 x 97
295 = 5 x 59
298 = 2 x 149
299 = 13 x 23
301 = 7 x 43
302 = 2 x 151
303 = 3 x 101
305 = 5 x 61
309 = 3 x 103
314 = 2 x 157
319 = 11 x 29
321 = 3 x 107
323 = 17 x 19
326 = 2 x 163
327 = 3 x 109
329 = 7 x 47
334 = 2 x 167
335 = 5 x 67
339 = 3 x 113
341 = 11 x 31
343 = 7 x 49
346 = 2 x 173
355 = 5 x 71
358 = 2 x 179
362 = 2 x 181
365 = 5 x 73
371 = 7 x 53
377 = 13 x 29
381 = 3 x 127
382 = 2 x 191
386 = 2 x 193
391 = 17 x 23
393 = 3 x 131
394 = 2 x 197
395 = 5 x 79
398 = 2 x 199
403 = 13 x 31
407 = 11 x 37
411 = 3 x 137
413 = 7 x 59
415 = 5 x 83
417 = 3 x 139
422 = 2 x 211
427 = 7 x 61
437 = 19 x 23
445 = 5 x 89
446 = 2 x 223
447 = 3 x 149
451 = 11 x 41
453 = 3 x 151
454 = 2 x 227
458 = 2 x 229
466 = 2 x 233
469 = 7 x 67
471 = 3 x 157
473 = 11 x 43
478 = 2 x 239
481 = 13 x 37
482 = 2 x 241
485 = 5 x 97
489 = 3 x 163
493 = 17 x 29
497 = 7 x 71
</pre>
 
9,488

edits