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 n-1 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
KEYWORD
nonn
AUTHOR
Michel Lagneau, Nov 13 2014
STATUS
approved