A236190 Differences between terms of compacting Eratosthenes sieve for prime(9) = 23.
Keywords
Links
- Christopher J. Hanson, Table of n, a(n) for n = 1..10000
This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
Christopher J. Hanson's wiki page.
Christopher J. Hanson has authored 14 sequences. Here are the ten most recent ones:
{a(n) = my(A); if( n<1, 0, A = vector( n*50 + 148, k, k+1); for( i = 1, 4, A = select( k -> k%prime(i), A) ); polcoeff( (1 - x) * Ser( select( k -> k>11 && (k%11) == 0, A) / 11), n))}; /* Michael Somos, Mar 10 2014 */
{a(n) = my(A); if( n<1, 0, A = vector( n*28 + 48, k, k+1); for( i = 1, 3, A = select( k -> k%prime(i), A) ); polcoeff( (1 - x) * Ser( select( k -> k>7 && (k%7) == 0, A) / 7), n)) }; /* Michael Somos, Mar 10 2014 */ (C#) // dp(4) = GeneratePrimeDifferencialPattern( 4 ); static void GeneratePrimeDifferencialPattern( int ordinal ) { // Contract if( ordinal < 1 ) throw new ArgumentOutOfRangeException( "ordinal" ); // Local data int size = 1 << 18; int[] numberLine = Enumerable.Range( 2, size ).ToArray(); int pointer = 0; // Apply sieve: for each integer greater than 1 while( pointer < numberLine.Length ) { // Locals int x = numberLine[pointer]; int index = pointer; Listpattern = new List (); int skips = 0; int count = 0; bool counting = true; // Find all products for( int n = x + x; n < size; n += x ) { // Fast forward through number-line while( numberLine[++index] < n ) skips++; // If the number was not already removed if( numberLine[index] == n ) { // Add skip count to pattern pattern.Add( numberLine[index] ); // Mark as not prime numberLine[index] = 0; // Reset skips if( counting ) { count++; if( skips <= 2 ) counting = false; } skips = 0; } // Otherwise we've skipped again else skips++; } // Reduce number-line numberLine = numberLine.Where( n => n > 0 ).ToArray(); // If we have a pattern we want if( pattern.Any() && pointer == ordinal - 1 ) { // Report pattern int prime = numberLine[ordinal-1]; var d = pattern.Take( count ).ToArray(); List dp = new List (); for( int y = 1; y < count; y++ ) dp.Add( ( d[y] - d[y - 1] ) / prime ); System.Console.WriteLine( "Pattern P({0}) = {1} :: dp({0}) = {2}", pointer + 1, numberLine[pointer], String.Join( ", ", dp ) ); return; } // Move number-line pointer forward pointer++; } }
Comments