Sequence: smallest number greater than previous term with exactly n divisors: Difference between revisions
(Added Go) |
(Added Sidef) |
||
Line 94: | Line 94: | ||
done... |
done... |
||
</pre> |
|||
=={{header|Sidef}}== |
|||
a(n) is the smallest number with exactly n divisors (A005179). |
|||
<lang ruby>func nth_divisors(n) { |
|||
1..Inf -> first_by { .sigma0 == n } |
|||
} |
|||
say 15.of { nth_divisors(_+1) }</lang> |
|||
{{out}} |
|||
<pre> |
|||
[1, 2, 4, 6, 16, 12, 64, 24, 36, 48, 1024, 60, 4096, 192, 144] |
|||
</pre> |
|||
a(n) is the smallest number > a(n-1) with exactly n divisors (A069654). |
|||
<lang ruby>func nth_divisors(from=1, n) { |
|||
from..Inf -> first_by { .sigma0 == n } |
|||
} |
|||
with (1) { |from| |
|||
say 15.of { from = nth_divisors(from, _+1) } |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
[1, 2, 4, 6, 16, 18, 64, 66, 100, 112, 1024, 1035, 4096, 4288, 4624] |
|||
</pre> |
</pre> |
Revision as of 10:59, 9 April 2019
The Anti-primes Plus sequence are the natural numbers in which each nth item has n factors, including 1 and itself.
Task
Show the first 15 items of this sequence.
Go
<lang go>package main
import "fmt"
func countDivisors(n int) int {
count := 0 for i := 1; i*i <= n; i++ { if n%i == 0 { if i == n/i { count++ } else { count += 2 } } } return count
}
func main() {
const max = 15 fmt.Println("The first", max, "anti-primes plus are:") for i, next := 1, 1; next <= max; i++ { if next == countDivisors(i) { fmt.Printf("%d ", i) next++ } } fmt.Println()
}</lang>
- Output:
The first 15 anti-primes plus are: 1 2 4 6 16 18 64 66 100 112 1024 1035 4096 4288 4624
Ring
<lang ring>
- Project : ANti-primes
see "working..." + nl see "wait for done..." + nl + nl see "the first 15 Anti-primes Plus are:" + nl + nl num = 1 n = 0 result = list(15) while num < 16
n = n + 1 div = factors(n) if div = num result[num] = n num = num + 1 ok
end see "[" for n = 1 to len(result)
if n < len(result) see string(result[n]) + "," else see string(result[n]) + "]" + nl + nl ok
next see "done..." + nl
func factors(an)
ansum = 2 if an < 2 return(1) ok for nr = 2 to an/2 if an%nr = 0 ansum = ansum+1 ok next return ansum
</lang>
- Output:
working... wait for done... the first 15 Anti-primes Plus are: [1,2,4,6,16,18,64,66,100,112,1024,1035,4096,4288,4624] done...
Sidef
a(n) is the smallest number with exactly n divisors (A005179). <lang ruby>func nth_divisors(n) {
1..Inf -> first_by { .sigma0 == n }
}
say 15.of { nth_divisors(_+1) }</lang>
- Output:
[1, 2, 4, 6, 16, 12, 64, 24, 36, 48, 1024, 60, 4096, 192, 144]
a(n) is the smallest number > a(n-1) with exactly n divisors (A069654).
<lang ruby>func nth_divisors(from=1, n) {
from..Inf -> first_by { .sigma0 == n }
}
with (1) { |from|
say 15.of { from = nth_divisors(from, _+1) }
}</lang>
- Output:
[1, 2, 4, 6, 16, 18, 64, 66, 100, 112, 1024, 1035, 4096, 4288, 4624]