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.

A272022 Look at the set of numbers obtained by permuting the digits of n in all possible ways, then remove n itself from the set. If the remaining numbers are all primes, then n is in the sequence.

Original entry on oeis.org

13, 14, 16, 17, 20, 30, 31, 32, 34, 35, 37, 38, 50, 70, 71, 73, 74, 76, 79, 91, 92, 95, 97, 98, 110, 113, 118, 119, 131, 133, 199, 311, 337, 373, 733, 772, 775, 778, 779, 919, 991, 1118, 3337, 7771, 77779
Offset: 1

Views

Author

César Eliud Lozada, Apr 18 2016

Keywords

Comments

If it exists, a(46) > 5*10^11. - Lars Blomberg, Mar 31 2018

Examples

			119 is in the sequence because every permutation of its digits excluding 119 (i.e., 191 and 911) is a prime.
11 is not in the sequence, because when 11 is removed from the set, no numbers are left.
		

Crossrefs

Cf. A003459. - Altug Alkan, Apr 18 2016

Programs

  • Maple
    lis := [];
    for n from 1 to 10000 do
      nn := convert(n, base, 10);
      pp := combinat[permute](nn);
      if nops(pp) = 1 then
        next
      end if;
      lOk := true;
      for p in pp do
        if p = nn then
          next: #exclude n
        end if;
        if `not`(isprime(convert(p, base, 10, 10^nops(p))[])) then
          lOk := false; break
        end if
      end do;
      if lOk then
        lis := [op(lis), n]
      end if
    end do:
    lis := lis;
  • Mathematica
    rnapQ[n_]:=Module[{p=Rest[FromDigits/@Permutations[IntegerDigits[ n]]]},If[ Length[p]==0, False, AllTrue[p,PrimeQ]]]; Select[Range[80000],rnapQ] (* The program uses the AllTrue function from Mathematica version 10 *) (* Harvey P. Dale, Jan 24 2019 *)
  • PARI
    isok(n) = {v = []; d = digits(n); for (k=0, (#d)!-1, p = numtoperm(#d, k); dp = vector(#d, j, d[p[j]]); np = subst(Pol(dp), x, 10); v = Set(concat(v, np));); v = setminus(v, Set(n)); if (#v == 0, return (0)); for (k=1, #v, if (!isprime(v[k]), return (0));); return (1);} \\ Michel Marcus, Apr 18 2016
    
  • Python
    from sympy import isprime
    from itertools import count, islice, permutations
    def agen(): yield from (k for k in count(1) if len(set(s:=str(k)))!=1 and all((t:=int("".join(m)))==k or isprime(t) for m in permutations(s)))
    print(list(islice(agen(), 45))) # Michael S. Branicky, Dec 29 2023