| Bytes | Lang | Time | Link |
|---|---|---|---|
| 045 | PARI/GP | 250819T190454Z | Charles |
| 013 | Vyxal 3 | 250627T130910Z | Themooni |
| 007 | Vyxal rG | 231003T155618Z | pacman25 |
| 013 | Husk | 201005T070927Z | Razetime |
| 102 | Axiom | 170528T054746Z | user5898 |
| 118 | PHP | 170527T202324Z | Jör |
| 012 | Actually | 160818T081111Z | Leaky Nu |
| 079 | Python | 160818T063937Z | Dennis |
| 017 | Brachylog | 160816T064712Z | Leaky Nu |
| 009 | Jelly | 160816T014539Z | Dennis |
| 093 | R | 160815T224203Z | user5957 |
| 011 | 05AB1E | 160815T204540Z | Emigna |
PARI/GP, 45 bytes
Simple iteration.
k->n=1;while(k,numdiv(n++)-2*omega(n)||k--);n
If you don't mind using the deprecated & for the shortcut AND operator && you can also do
k->n=1;while(k,numdiv(n++)==2*omega(n)&k--);n
Vyxal 3, 13 bytes
kNʎ℗n∆qk±≡∨}i
kNʎ℗n∆qk±≡∨}i
i # index implicit input into
kN # natural numbers
ʎ } # filtered by
℗ # is it prime
∨ # or
n∆q # are its prime exponents
k±≡ # exactly equal to [1, 1]?
💎
Created with the help of Luminespire.
<script type="vyxal3">
kNʎ℗n∆qk±≡∨}i
</script>
<script>
args=[["5"],["15"],["102"]]
</script>
<script src="https://themoonisacheese.github.io/snippeterpreter/snippet.js" type="module"/>
Husk, 13 bytes
!fö`¦2ṁo□LgpN
Explanation
!fö`¦2ṁo□LgpN
N List of natural numbers
fö filtered by the following 4 functions:
gp prime factorization, grouped into equal runs
ṁo□L get length of each run, square and sum
`¦2 is 2 divisible by the sum?
! nth element in filtered list
Axiom, 102 bytes
f(n:PI):PI==(i:=1;repeat(i:=i+1;a:=divisors(i);2*#[x for x in a|prime?(x)]=#a=>(n=1=>break;n:=n-1));i)
ungolf and result
-- 1 base Indexed: return the n_th number i that has 2*#divisorsPrimeOf(i)=#divisors(i)
ff(n:PI):PI==
i:=1
repeat
i:=i+1
a:=divisors(i)
2*#[x for x in a|prime?(x)]=#a=>(n=1=>break;n:=n-1)
i
(3) -> [f(i) for i in 1..23]
(3) [2,3,5,6,7,10,11,13,14,15,17,19,21,22,23,26,29,31,33,34,35,37,38]
Type: List PositiveInteger
PHP, 118 Bytes
for($i=1;!$o=$s[$argn];$r[2]?:$t+=2*$$i=1,$t?:$s[]=$i)for($t=0,$r=[],$n=++$i;$n;$n--)$i%$n?:$t+=${$r[]=$n}?:-1;echo$o;
Actually, 12 bytes
All credits to Dennis for his algorithm.
`w♂N;*2%Y`╓N
`w♂N;*2%Y`╓N
` ` define a function
w prime factorization in exponent form:
18 = (2^1)*(3^2) becomes [[2,1],[3,2]]
♂N get the last element (exponent) of each sublist
;* dot-product with self; equivalent to squaring
each item and then taking the sum
2%Y test divisibility by 2
╓ first (input) solutions to the above function
N get the last element.
Python, 79 bytes
f=lambda n,k=2:n<1or-~f(n-(sum((k%i<1)+2*(k%i**2<1)for i in range(2,k))<3),k+1)
Uses 1-based indexing. Test it on Ideone.
Brachylog, 17 bytes
:1yt.
1<.=$p#dl<3
Predicate 0 (main predicate)
:1yt.
:1y Find the first (input) solutions of predicate 1
t Last element
. Unify with output
Predicate 1 (auxiliary predicate)
1<.=$p#dl<3
1<. 1 < output
.= assign a value to output
. $p#d output's prime factorization contains no duplicate
l and the length
<3 is less than three
Jelly, 9 bytes
ÆE²Sḍ2µ#Ṫ
Reads from STDIN and uses 1-based indexing. Try it online!
How it works
ÆE²Sḍ2µ#Ṫ Main link. No arguments. Implicit argument: 0
µ# Read an integer n from STDIN and execute the chain to the left for
k = 0, 1, 2, ... until n of them return a truthy value.
Return the array of matches.
ÆE Compute the exponents of k's prime factorization.
² Square each exponent.
S Compute the sum of all squares.
ḍ2 Test if 2 is divisible by the result (true iff the sum is 1 or 2).
Ṫ Tail; extract the last (n-th) matching value of k.
R, 93 Bytes
dense=function(n){a=b=0;for(i in which(!n%%1:n))if(which(!i%%2:i)+1==i)a=a+1 else b=b+1;a==b}
It has a tendency to throw a warning. Its not really a problem. Allowing the warning saves me 5 bytes.
Ungolfed
dense=function(n){
a=b=0 #Initializing
factors = which(!n%%1:n) #Finds all factors
for(i in factors) #Loops through factors
prime = which(!i%%2:i)+1==i #Tests if current factor is prime. If it is -- the first term in this vector will be TRUE. Otherwise, it will be false.
if (prime) a=a+1 else b=b+1 #If first term is true, add 1 to a. Else add one to b.
return(a==b) #Test equality of a and b.
}
05AB1E, 12 11 bytes
1-indexed
µ # while counter != input
NÑ # get divisors of current number
p # check if prime
D # duplicate
O # sum one copy
s_O # invert and sum the other copy
Q½ # if equal increase counter