Palindromic Wing Primes - Mathematica

时间:2016-01-16 01:16:32

标签: numbers wolfram-mathematica primes

定义: Palindromic Wing Primes(简称PWP' s)是数字 是基数10的素数,回文,由一个中心数字组成 由两个相同数字和相同数量的翅膀包围 与中央不同。 E.g。

101 99999199999 333333313333333 7777777777772777777777777 11111111111111111111111111111111411111111111111111111111111111111

如果它是回文翼和素数,则数字是回文翼素。这是前几个回文翼质量: 101,131,151,181,191,313,353,373,383,727,757,787,797,919,929,11311,11411,33533,77377,77477,77977,1114111,111171,3331333,3337333 7772777,7774777,7778777,111111111,11111111111,777767777,77777677777,...

如果数字是回文翼,我需要帮助找到正确的算法或伪代码 如果有人可以帮我指导Palindromic Wing Primes的更多信息,他们的历史和最后的结果,也许可以帮助我和#34; mathematica Programming"这将是惊人的

亲切的问候

2 个答案:

答案 0 :(得分:1)

使用Mathematica测试翼长1至20的翼形回文。

sets = DeleteCases[Tuples[Range[0, 9], 2], {a_, a_} | {0, _}];

grow[n_] := Map[Flatten, {a = ConstantArray[#1, n], #2, a} & @@@ sets]

test[c_] := If[PrimeQ[k = FromDigits@c], AppendTo[output, k]]

run[from_, to_] := Do[test /@ grow[i], {i, from, to}]

output = {};
run[1, 20]
101
131
151
181
191
...
111111111111111111131111111111111111111
777777777777777777797777777777777777777
77777777777777777777977777777777777777777

答案 1 :(得分:0)

有趣的定义,我第一次听到这个。

假设你知道如何检查一个数字是回文和素数,这里有一些伪代码和python代码

isPalindromicWing(N){
    if isPalindromic(N){
        num <- toString(N)
        tam <- length(num)
        if isOdd(tam) and lenght(toSet(num)) = 2{
            middle <- num[ floor(tam/2) ] 
            if 1 = num.count(middle){
                return True
            }
        }
     }
     return False
}

isPWP(N){
    return isPalindromicWing(N) and isPrime(N)
}

我使用集合去除重复,并且因为数字只能有2个不同的数字lenght(toSet(num)) == 2我检查了,然后我取中间数字并检查数字中是否只有一个。其余我认为是自我解释的。

中的

def isPalindromic(N):
    num = str(N)
    return N == int( num[::-1] )

def isPalindromicWing(n):
    if isPalindromic(n):
        num = str(n)
        tam = len(num)
        if tam % 2 == 1 and len(set(num)) == 2:
            middle = num[tam // 2]
            if 1 == num.count(middle):
                return True 
    return False

我不知道&#34; mathematica Programming&#34;,但是你明白这个代码你也可以做到这一点吗