

A245907


Let D = {d(n,i)}, i = 1..q, denote the set of divisors of n; then a(n) = number of multiplicative groups G(n,p) = D/kZ, 1 < k < n.


1



0, 1, 1, 3, 0, 4, 3, 3, 1, 7, 2, 7, 1, 3, 4, 8, 1, 11, 2, 3, 2, 9, 2, 7, 1, 9, 2, 15, 0, 13, 7, 3, 1, 7, 2, 11, 3, 3, 2, 19, 1, 15, 2, 5, 2, 11, 2, 13, 1, 3, 3, 15, 2, 7, 4, 5, 2, 15, 1, 15, 1, 6, 8, 7, 1, 15, 5, 3, 1, 29, 3, 14, 2, 5, 4, 9, 2, 23, 3, 13, 1, 15
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

2,4


COMMENTS

We introduce the structure of a finite group in order to study the divisors of each integer.
We see that the study of the classification of the divisors is dependent on the values k. The trivial group {1} is counted.
The principle of the algorithm is to compute all the products d(n,i)/kZ * d(n,j)/kZ and also the inverse of each element such that if x is in the group, then there exists x’ in the group with x*x’ = 1.
An interesting property: a(n)= 0 for n = 2, 6, 30, 186, 366, 426, 606, 786, 1266, 1446, 1626, 1686, ... where n>30 is of the form n = 6*q with q prime of the form (10*k + 1) => q = 31, 61, 71, 101, 131, 211, 241, 271, 281, 311, 421, 491, ...
a(n) = 1 for n = 3, 4, 10, 14, 18, 26, 34, 42, 50, 60, 62, 66, ...


LINKS

Michel Lagneau, Table of n, a(n) for n = 2..2000
Eric Weisstein's World of Mathematics, Finite Group
Wikipedia, Finite group


EXAMPLE

a(133) = 11 because there exist eleven finite groups formed from the four divisors {1,7,19,133} of 133. The eleven finite groups G(133,p) are:
G(133,2) = {1}
G(133,3} = {1}
G(133,4} = {1,3}
G(133,5} = {1,2,3,4}
G(133,6} = {1}
G(133,8} = {1,3,5,7}
G(133,10} = {1,3,7,9}
G(133,12} = {1,7}
G(133,15} = {1,4,7,13}
G(133,24} = {1,7,13,19}
G(133,30} = {1,7,13,19}


MAPLE

with(numtheory):
for n from 2 to 100 do:
x:=divisors(n):n1:=nops(x):ind:=0:
for p from 2 to n1 do:
lst:={}:
for i from 1 to n1 do:
lst:=lst union {irem(x[i], p)}:
od:
n2:=nops(lst):lst1:={}:
for a from 1 to n2 do:
for b from 1 to n2 do:
lst1:=lst1 union {irem(lst[a]*lst[b], p)}:
od:
od:
if lst1=lst
then
n3:=nops(lst1):lst2:={}:
for c from 1 to n3 do:
for d from 1 to n3 do:
if irem(lst1[c]*lst1[d], p)=1
then lst2:=lst2 union {lst1[c]}:
else
fi:
od:
od:
if lst2=lst
then
ind:=ind+1:
else
fi:
fi:
od:
printf(`%d, `, ind):
od:


CROSSREFS

Sequence in context: A113486 A108572 A322335 * A104686 A301428 A104514
Adjacent sequences: A245904 A245905 A245906 * A245908 A245909 A245910


KEYWORD

nonn


AUTHOR

Michel Lagneau, Nov 13 2014


STATUS

approved



