%I #35 Aug 17 2024 09:02:00
%S 0,2,3,0,5,2,7,0,0,2,11,3,13,2,3,0,17,2,19,5,3,2,23,3,0,2,0,7,29,2,31,
%T 0,3,2,5,0,37,2,3,5,41,2,43,11,5,2,47,3,0,2,3,13,53,2,5,7,3,2,59,3,61,
%U 2,7,0,5,2,67,17,3,2,71,0,73,2,3,19,7,2,79,5,0,2,83,3,5,2,3,11,89,2,7,23,3,2
%N a(n) is the least unitary prime divisor of n, or 0 if no such prime divisor exists.
%H Reinhard Zumkeller, <a href="/A080368/b080368.txt">Table of n, a(n) for n = 1..10000</a>
%F If A277697(n) = 0, then a(n) = 0, otherwise a(n) = A000040(A277697(n)). - _Antti Karttunen_, Oct 28 2016
%F from _Amiram Eldar_, Aug 17 2024: (Start)
%F a(n) = 0 if and only of n is powerful (A001694).
%F a(n) = A020639(A055231(n)) if n is not powerful. (End)
%e For n = 252100 = 2*2*3*5*5*7*11*11, the unitary prime divisors are {3,7}, the smallest is 3, so a(252100) = 3.
%t ffi[x_] := Flatten[FactorInteger[x]]; lf[x_] := Length[FactorInteger[x]]; ba[x_] := Table[Part[ffi[x], 2*w-1], {w, 1, lf[x]}]; gb[x_] := GCD[ba[x], x/ba[x]]; fpg[x_] := Flatten[Position[gb[x], 1]]; upd[x_] := Part[ba[x], fpg[x]]; mxu[x_] := Max[upd[x]]; miu[x_] := Min[upd[x]]; Do[If[Equal[upd[n], {}], Print[0]]; If[ !Equal[upd[n], {}], Print[miu[n]]], {n, 2, 256}]
%t Table[If[Or[n == 1, Length@ # == 0], 0, First@ #] &@ Select[FactorInteger[n][[All, 1]], GCD[#, n/#] == 1 &], {n, 94}] (* _Michael De Vlieger_, Oct 30 2016 *)
%t a[n_] := If[(p = Select[FactorInteger[n], Last[#] == 1 &][[;; , 1]]) == {}, 0, Min[p]]; a[1] = 0; Array[a, 100] (* _Amiram Eldar_, Aug 17 2024 *)
%o (Haskell)
%o a080368 n = if null us then 0 else fst $ head us
%o where us = filter ((== 1) . snd) $ zip (a027748_row n) (a124010_row n)
%o -- _Reinhard Zumkeller_, Jul 23 2014
%o (Scheme) (define (A080368 n) (if (zero? (A277697 n)) 0 (A000040 (A277697 n)))) ;; _Antti Karttunen_, Oct 28 2016
%o (Python)
%o from sympy import factorint, prime, primepi, isprime, primefactors
%o def a049084(n): return primepi(n)*(1*isprime(n))
%o def a055396(n): return 0 if n==1 else a049084(min(primefactors(n)))
%o def a028234(n):
%o f = factorint(n)
%o return 1 if n==1 else n/(min(f)**f[min(f)])
%o def a067029(n):
%o f=factorint(n)
%o return 0 if n==1 else f[min(f)]
%o def a277697(n): return 0 if n==1 else a055396(n) if a067029(n)==1 else a277697(a028234(n))
%o def a(n): return 0 if a277697(n)==0 else prime(a277697(n)) # _Indranil Ghosh_, May 16 2017
%o (PARI) a(n) = {my(f = factor(n), pmin = 0); for(i = 1, #f~, if(f[i, 2] == 1, if(pmin == 0, pmin = f[i, 1], if(f[i, 1] < pmin, pmin = f[i, 1])))); pmin;} \\ _Amiram Eldar_, Aug 17 2024
%Y Cf. A000040, A034444, A056169, A080367, A277697.
%Y Cf. A020639, A027748, A055231, A124010.
%Y Cf. A001694 (positions of zeros).
%Y Cf. A277698 for a variant which gives 1's instead of 0's for numbers with no unitary prime divisors (A001694).
%K nonn,easy
%O 1,2
%A _Labos Elemer_, Feb 21 2003
%E a(1)=0 inserted by _Reinhard Zumkeller_, Jul 23 2014