Primes whose first and last number is 3: Difference between revisions
Primes whose first and last number is 3 (view source)
Revision as of 12:53, 24 July 2021
, 2 years ago→{{header|Wren}}: Added a more general version.
m (added a stretch goal to this (draft) task.) |
(→{{header|Wren}}: Added a more general version.) |
||
Line 199:
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
===Basic task===
<lang ecmascript>import "/math" for Int
import "/trait" for Stepped
Line 220 ⟶ 222:
Found 33 such primes.
</pre>
===More general===
This version deals with primes (in base 10) beginning and ending with any specified digit and with up to a given number of digits.
<lang ecmascript>import "/math" for Int
import "/trait" for Stepped
import "/seq" for Lst
import "/fmt" for Fmt
var getQualifyingPrimes = Fn.new { |x, d|
if (d.type != Num || !d.isInteger || d < 1) Fiber.abort("Invalid number of digits.")
if (x == 2 || x == 5) return [x]
if (x % 2 == 0) return []
var primes = []
var candidates = [x]
for (i in 1...d) {
var pow = 10.pow(i)
var start = x * (pow + 1)
var end = start + pow - 10
candidates.addAll(Stepped.new(start..end, 10).toList)
}
return candidates.where { |cand| Int.isPrime(cand) }.toList
}
var d = 4 // up to 'd' digits
for (x in [1, 2, 3, 5, 7, 9]) { // begins and ends with 'x'
var primes = getQualifyingPrimes.call(x, d)
var len = d + (d/3).floor
Fmt.print("Primes under $,%(len)d which begin and end in $d:", 10.pow(d), x)
for (chunk in Lst.chunks(primes, 10)) Fmt.print("$,%(len)d", chunk)
System.print("\nFound %(primes.count) such primes.\n")
}</lang>
{{out}}
<pre>
Primes under 10,000 which begin and end in 1:
11 101 131 151 181 191 1,021 1,031 1,051 1,061
1,091 1,151 1,171 1,181 1,201 1,231 1,291 1,301 1,321 1,361
1,381 1,451 1,471 1,481 1,511 1,531 1,571 1,601 1,621 1,721
1,741 1,801 1,811 1,831 1,861 1,871 1,901 1,931 1,951
Found 39 such primes.
Primes under 10,000 which begin and end in 2:
2
Found 1 such primes.
Primes under 10,000 which begin and end in 3:
3 313 353 373 383 3,023 3,083 3,163 3,203 3,253
3,313 3,323 3,343 3,373 3,413 3,433 3,463 3,533 3,583 3,593
3,613 3,623 3,643 3,673 3,733 3,793 3,803 3,823 3,833 3,853
3,863 3,923 3,943
Found 33 such primes.
Primes under 10,000 which begin and end in 5:
5
Found 1 such primes.
Primes under 10,000 which begin and end in 7:
7 727 757 787 797 7,027 7,057 7,127 7,177 7,187
7,207 7,237 7,247 7,297 7,307 7,417 7,457 7,477 7,487 7,507
7,517 7,537 7,547 7,577 7,607 7,687 7,717 7,727 7,757 7,817
7,867 7,877 7,907 7,927 7,937
Found 35 such primes.
Primes under 10,000 which begin and end in 9:
919 929 9,029 9,049 9,059 9,109 9,199 9,209 9,239 9,319
9,349 9,419 9,439 9,479 9,539 9,619 9,629 9,649 9,679 9,689
9,719 9,739 9,749 9,769 9,829 9,839 9,859 9,929 9,949
Found 29 such primes.
</pre>
|