Zsigmondy numbers: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) (Added Perl) |
No edit summary |
||
Line 234: | Line 234: | ||
Zsigmondy(n, 7, 5): 2, 3, 109, 37, 6841, 13, 372709, 1513, 176149, 1661, 964249309, 1801, 47834153641, 75139, 3162961, 3077713, 115933787267041, 30133, 5689910849522509, 3949201 |
Zsigmondy(n, 7, 5): 2, 3, 109, 37, 6841, 13, 372709, 1513, 176149, 1661, 964249309, 1801, 47834153641, 75139, 3162961, 3077713, 115933787267041, 30133, 5689910849522509, 3949201 |
||
</pre> |
</pre> |
||
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
|||
Return the Zsigmondy-number to a,b,n integer: |
|||
<syntaxhighlight lang="mathematica"> |
|||
zsigmondy[a_Integer, b_Integer, n_Integer] := ( |
|||
If[ |
|||
n == 1, Return[{a - b}], Return[hatvanyok = a^Range[n] - b^Range[n]; |
|||
kishatvany = a^Range[n - 1] - b^Range[n - 1]; |
|||
biggestelement = Part[hatvanyok, n]; |
|||
divisors = Divisors[biggestelement]; |
|||
divisorpairs = Join @@ (Thread[{#, kishatvany}] & /@ divisors); |
|||
coprimepairs = Select[divisorpairs, CoprimeQ[#[[1]], #[[2]]] &]; |
|||
firstelement = coprimepairs[[All, 1]]; |
|||
revesedelements = ReverseSort[firstelement]; |
|||
Commonest[revesedelements, 1]]]) |
|||
</syntaxhighlight> |
|||
Task: |
|||
<syntaxhighlight lang="mathematica"> |
|||
zsigmondy[a_Integer, b_Integer, n_Integer] := ( |
|||
If[ |
|||
n == 1, Return[{a - b}], Return[hatvanyok = a^Range[n] - b^Range[n]; |
|||
kishatvany = a^Range[n - 1] - b^Range[n - 1]; |
|||
biggestelement = Part[hatvanyok, n]; |
|||
divisors = Divisors[biggestelement]; |
|||
divisorpairs = Join @@ (Thread[{#, kishatvany}] & /@ divisors); |
|||
coprimepairs = Select[divisorpairs, CoprimeQ[#[[1]], #[[2]]] &]; |
|||
firstelement = coprimepairs[[All, 1]]; |
|||
revesedelements = ReverseSort[firstelement]; |
|||
Commonest[revesedelements, 1]]]) |
|||
l1 = Table[zsigmondy[2, 1, k], {k, Range[10]}]; |
|||
l2 = Table[zsigmondy[3, 1, k], {k, Range[10]}]; |
|||
l3 = Table[zsigmondy[4, 1, k], {k, Range[10]}]; |
|||
l4 = Table[zsigmondy[5, 1, k], {k, Range[10]}]; |
|||
l5 = Table[zsigmondy[6, 1, k], {k, Range[10]}]; |
|||
l6 = Table[zsigmondy[7, 1, k], {k, Range[10]}]; |
|||
l7 = Table[zsigmondy[3, 2, k], {k, Range[10]}]; |
|||
l8 = Table[zsigmondy[5, 3, k], {k, Range[10]}]; |
|||
l9 = Table[zsigmondy[7, 3, k], {k, Range[10]}]; |
|||
l10 = Table[zsigmondy[7, 5, k], {k, Range[10]}]; |
|||
matrix = {{l1}, {l2}, {l3}, {l4}, {l5}, {l6}, {l7}, {l8}, {l9}, {l10}}; |
|||
data1 = List["Zsigmondy:2,1,n", "Zsigmondy:3,1,n", "Zsigmondy:4,1,n", |
|||
"Zsigmondy:5,1,n", "Zsigmondy:6,1,n", "Zsigmondy:7,1,n", |
|||
"Zsigmondy:3,2,n", "Zsigmondy:5,3,n", "Zsigmondy:7,3,n", |
|||
"Zsigmondy:7,5,n"]; |
|||
data2 = matrix; |
|||
Grid[Transpose@{data1, data2}~ |
|||
Prepend~{"pair of numbers", "Zsigmondy numbers"}, |
|||
Dividers -> {All, {1 -> True, 2 -> True}}] |
|||
</syntaxhighlight> |
|||
output: |
|||
<syntaxhighlight lang="mathematica"> |
|||
Grid[{{"pair of numbers", |
|||
"Zsigmondy numbers"}, {"Zsigmondy:2,1,n", {{{1}, {3}, {7}, {5}, \ |
|||
{31}, {1}, {127}, {17}, {73}, {11}}}}, |
|||
{"Zsigmondy:3,1,n", {{{2}, {1}, {13}, {5}, {121}, {7}, {1093}, \ |
|||
{41}, {757}, {61}}}}, |
|||
{"Zsigmondy:4,1,n", {{{3}, {5}, {7}, {17}, {341}, {13}, {5461}, \ |
|||
{257}, {1387}, {41}}}}, |
|||
{"Zsigmondy:5,1,n", {{{4}, {3}, {31}, {13}, {781}, {7}, {19531}, \ |
|||
{313}, {15751}, {521}}}}, |
|||
{"Zsigmondy:6,1,n", {{{5}, {7}, {43}, {37}, {311}, {31}, \ |
|||
{55987}, {1297}, {46873}, {1111}}}}, |
|||
{"Zsigmondy:7,1,n", {{{6}, {1}, {19}, {25}, {2801}, {43}, \ |
|||
{137257}, {1201}, {39331}, {2101}}}}, |
|||
{"Zsigmondy:3,2,n", {{{1}, {5}, {19}, {13}, {211}, {7}, {2059}, \ |
|||
{97}, {1009}, {11}}}}, |
|||
{"Zsigmondy:5,3,n", {{{2}, {1}, {49}, {17}, {1441}, {19}, \ |
|||
{37969}, {353}, {19729}, {421}}}}, |
|||
{"Zsigmondy:7,3,n", {{{4}, {5}, {79}, {29}, {4141}, {37}, \ |
|||
{205339}, {1241}, {127639}, {341}}}}, |
|||
{"Zsigmondy:7,5,n", {{{2}, {3}, {109}, {37}, {6841}, {13}, \ |
|||
{372709}, {1513}, {176149}, {1661}}}}}, |
|||
Dividers -> {All, {1 -> True, 2 -> True}}, |
|||
ItemSize -> {Automatic, Automatic}] |
|||
</syntaxhighlight> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |