cp's OEIS Frontend

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.

A361075 Products of exactly 7 distinct odd primes.

Original entry on oeis.org

4849845, 5870865, 6561555, 7402395, 7912905, 8273265, 8580495, 8843835, 9444435, 10015005, 10140585, 10465455, 10555545, 10705695, 10818885, 10975965, 11565015, 11696685, 11996985, 12267255, 12777765, 12785955, 13096545, 13408395, 13498485, 13528515, 13667745, 13803405
Offset: 1

Views

Author

Karl-Heinz Hofmann, Mar 01 2023

Keywords

Examples

			a(1)     =   4849845 = 3*5*7*11*13*17*19
a(9663)  = 253808555 = 5*7*11*13*17*19*157
a(9961)  = 258573315 = 3*5*7*11*13*17*1013
a(10000) = 259173915 = 3*5*7*11*13*41*421
		

Crossrefs

Cf. A065091, A046388 (2 distinct odd primes).
Cf. A046389 (3 distinct odd primes), A046390 (4 distinct odd primes).
Cf. A046391 (5 distinct odd primes), A168352 (6 distinct odd primes).

Programs

  • Python
    import numpy
    from sympy import nextprime, sieve, primepi
    k_upto = 14 * 10**6
    array = numpy.zeros(k_upto,dtype="i4")
    sieve_max_number = primepi(nextprime(k_upto // 255255))
    for s in range(2,sieve_max_number):
        array[sieve[s]:k_upto][::sieve[s]] += 1
    for s in range(2,sieve_max_number):
        array[sieve[s]**2:k_upto][::sieve[s]**2] = 0
    print([k for k in range(1,k_upto,2) if array[k] == 7])
    
  • Python
    from math import prod, isqrt
    from sympy import primerange, integer_nthroot, primepi
    def A361075(n):
        def g(x,a,b,c,m): yield from (((d,) for d in enumerate(primerange(b+1,isqrt(x//c)+1),a+1)) if m==2 else (((a2,b2),)+d for a2,b2 in enumerate(primerange(b+1,integer_nthroot(x//c,m)[0]+1),a+1) for d in g(x,a2,b2,c*b2,m-1)))
        def f(x): return int(n+x-sum(primepi(x//prod(c[1] for c in a))-a[-1][0] for a in g(x,1,2,1,7)))
        def bisection(f,kmin=0,kmax=1):
            while f(kmax) > kmax: kmax <<= 1
            while kmax-kmin > 1:
                kmid = kmax+kmin>>1
                if f(kmid) <= kmid:
                    kmax = kmid
                else:
                    kmin = kmid
            return kmax
        return bisection(f,n,n) # Chai Wah Wu, Sep 10 2024