Zsigmondy numbers: Difference between revisions

Content added Content deleted
(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}}==