Frobenius numbers: Difference between revisions
Content added Content deleted
m (added whitespace.) |
(Added C# entry) |
||
Line 5: | Line 5: | ||
a(n) = prime(n)*prime(n+1) - prime(n) - prime(n+1), where '''prime(n) < 10,000''' |
a(n) = prime(n)*prime(n+1) - prime(n) - prime(n+1), where '''prime(n) < 10,000''' |
||
<br><br> |
<br><br> |
||
=={{header|C#|CSharp}}== |
|||
<lang csharp>using System.Collections.Generic; using System.Linq; using static System.Console; using static System.Math; |
|||
class Program { static void Main() { |
|||
int c = 0, d = 0, f, lim = 1000000, l2 = lim / 100; var Frob = PG.Primes((int)Sqrt(lim) + 1).ToArray(); |
|||
for (int n = 0, m = 1; m < Frob.Length; n = m++) { |
|||
if ((f = Frob[n] * Frob[m] - Frob[n] - Frob[m]) < l2) d++; |
|||
Write("{0,7:n0} {1}", f , ++c % 10 == 0 ? "\n" : ""); } |
|||
WriteLine("\n\nFound {0} Frobenius numbers of consecutive primes under {1:n0}," + |
|||
"of which {2} were under {3:n0}", c, lim, d, l2); } } |
|||
class PG { public static IEnumerable<int> Primes(int lim) { |
|||
var flags = new bool[lim + 1]; int j; yield return 2; |
|||
for (j = 4; j <= lim; j += 2) flags[j] = true; j = 3; |
|||
for (int d = 8, sq = 9; sq <= lim; j += 2, sq += d += 8) |
|||
if (!flags[j]) { yield return j; |
|||
for (int k = sq, i = j << 1; k <= lim; k += i) flags[k] = true; } |
|||
for (; j <= lim; j += 2) if (!flags[j]) yield return j; } }</lang> |
|||
{{out}} |
|||
<pre> 1 7 23 59 119 191 287 395 615 839 |
|||
1,079 1,439 1,679 1,931 2,391 3,015 3,479 3,959 4,619 5,039 |
|||
5,615 6,395 7,215 8,447 9,599 10,199 10,811 11,447 12,095 14,111 |
|||
16,379 17,679 18,767 20,423 22,199 23,399 25,271 26,891 28,551 30,615 |
|||
32,039 34,199 36,479 37,631 38,807 41,579 46,619 50,171 51,527 52,895 |
|||
55,215 57,119 59,999 63,999 67,071 70,215 72,359 74,519 77,279 78,959 |
|||
82,343 89,351 94,859 96,719 98,591 104,279 110,879 116,255 120,407 122,495 |
|||
126,015 131,027 136,151 140,615 144,395 148,215 153,647 158,399 163,199 170,543 |
|||
175,559 180,599 185,759 189,215 193,595 198,015 204,287 209,759 212,519 215,291 |
|||
222,747 232,307 238,139 244,019 249,995 255,015 264,159 271,439 281,879 294,839 |
|||
303,575 312,471 319,215 323,759 328,319 337,535 346,911 354,015 358,799 363,599 |
|||
370,871 376,991 380,687 389,339 403,199 410,879 414,731 421,191 429,015 434,279 |
|||
443,519 454,271 461,031 470,579 482,999 495,599 508,343 521,267 531,431 540,215 |
|||
547,595 556,499 566,999 574,559 583,679 592,895 606,791 625,655 643,167 654,479 |
|||
664,199 674,039 678,971 683,927 693,863 713,975 729,311 734,447 739,595 755,111 |
|||
770,879 776,159 781,451 802,715 824,459 835,379 851,903 868,607 879,839 889,239 |
|||
900,591 919,631 937,019 946,719 958,431 972,179 986,039 |
|||
Found 167 Frobenius numbers of consecutive primes under 1,000,000, of which 25 were under 10,000</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |