cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A077610 Triangle in which n-th row lists unitary divisors of n.

Original entry on oeis.org

1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 2, 3, 6, 1, 7, 1, 8, 1, 9, 1, 2, 5, 10, 1, 11, 1, 3, 4, 12, 1, 13, 1, 2, 7, 14, 1, 3, 5, 15, 1, 16, 1, 17, 1, 2, 9, 18, 1, 19, 1, 4, 5, 20, 1, 3, 7, 21, 1, 2, 11, 22, 1, 23, 1, 3, 8, 24, 1, 25, 1, 2, 13, 26, 1, 27, 1, 4, 7, 28, 1, 29, 1, 2, 3, 5, 6, 10, 15, 30
Offset: 1

Views

Author

Eric W. Weisstein, Nov 11 2002

Keywords

Comments

n-th row = n-th row of A165430 without repetitions. - Reinhard Zumkeller, Mar 04 2013
Denominators of sequence of all positive rational numbers ordered as follows: let m = p(i(1))^e(i(1))*...*p(i(k))^e(i(k)) be the prime factorization of m. Let S(m) be the vector of rationals p(i(k+1-j))^e(i(k+1-j))/p(i(j))^e(i(j)) for j = 1..k. The sequence (a(n)) is the concatenation of vectors S(m) for m = 1, 2, ...; for numerators see A229994. - Clark Kimberling, Oct 31 2013
The concept of unitary divisors was introduced by the Indian mathematician Ramaswamy S. Vaidyanathaswamy (1894-1960) in 1931. He called them "block factors". The term "unitary divisor" was coined by Cohen (1960). - Amiram Eldar, Mar 09 2024

Examples

			1;
1, 2;
1, 3;
1, 4;
1, 5;
1, 2, 3, 6;
1, 7;
1, 8;
1, 9;
1, 2, 5, 10;
1, 11;
		

Crossrefs

Cf. A037445, A027750, A034444 (row lengths), A034448 (row sums); A206778.

Programs

  • Haskell
    a077610 n k = a077610_row n !! k
    a077610_row n = [d | d <- [1..n], let (n',m) = divMod n d,
                         m == 0, gcd d n' == 1]
    a077610_tabf = map a077610_row [1..]
    -- Reinhard Zumkeller, Feb 12 2012
    
  • Maple
    with(numtheory);
    # returns the number of unitary divisors of n and a list of them, from N. J. A. Sloane, May 01 2013
    f:=proc(n)
    local ct,i,t1,ans;
    ct:=0; ans:=[];
    t1:=divisors(n);
    for i from 1 to nops(t1) do
    d:=t1[i];
    if igcd(d,n/d)=1 then ct:=ct+1; ans:=[op(ans),d]; fi;
    od:
    RETURN([ct,ans]);
    end;
    # Alternatively:
    isUnitary := (n, d) -> igcd(n, d) = d and igcd(n/d, d) = 1:
    aList := n -> select(k -> isUnitary(n, k), [seq(1..n)]): # Peter Luschny, Jun 13 2025
  • Mathematica
    row[n_] := Select[ Divisors[n], GCD[#, n/#] == 1 &]; Table[row[n], {n, 1, 30}] // Flatten (* Jean-François Alcover, Oct 22 2012 *)
  • PARI
    row(n)=my(f=factor(n),k=#f~); Set(vector(2^k,i, prod(j=1,k, if(bittest(i,j-1),1,f[j,1]^f[j,2]))))
    v=[];for(n=1,20,v=concat(v,row(n)));v \\ Charles R Greathouse IV, Sep 02 2015
    
  • PARI
    row(n) = {my(d = divisors(n)); select(x->(gcd(x, n/x)==1), d);} \\ Michel Marcus, Oct 11 2015
    
  • Python
    from math import gcd
    def is_unitary(n, d) -> bool: return gcd(n, d) == d and gcd(n//d, d) == 1
    def aList(n) -> list[int]: return [k for k in range(1, n+1) if is_unitary(n, k)]
    for n in range(1, 31): print(aList(n))  # Peter Luschny, Jun 13 2025

Formula

d is unitary divisor of n <=> gcd(n, d) = d and gcd(n/d, d) = 1. - Peter Luschny, Jun 13 2025