定义:回文翼质数(或简称PWP)是质数,以10为基数的回文数,由一个中心数字组成,由两个具有相等数量的相同数字的翅膀包围,与中心数字不同。例如。
101 99999199999 333333313333333 77777777772777777777777777777 11111111111111111111111111111111411111111111111111111111111111111
一个数是回文翼素数,如果它既是回文翼素又是素数。下面是前几个回文翼质数: 101,131,151,181,191,313,353,373,383,727,757,787,797,919,929,11311,11411,33533,77377,77477,77977,1114111,1117111,3331333,3337333,7772777,7774777,7778777,111181111,111191111,777767777,77777677777,……
请帮助我找到正确的算法或伪代码,如果一个数字是回文之翼,如果有人可以帮助我与指南我更多的信息,他们的历史和最后的结果,也许会帮助我与“数学编程”,这将是惊人的
亲切的问候
发布于 2016-01-16 15:06:21
使用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]77777777777777777777977777777777777777777
101 131 151 181 191 ... 111111111111111311111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111177777777777777777777777777777777777777777777777777777777
发布于 2016-01-16 11:21:42
有趣的定义,这是我第一次听说。
假设您知道如何检查一个数字是否为回文和质数,下面是一些伪代码和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)
}我使用集合来消除重复,由于使用lenght(toSet(num)) == 2的数字只能有两个不同的数字,因此我检查是否有中间的数字,并检查数字中是否只有一个。剩下的我认为不言自明。
在python中,这是
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我不知道"mathematica Programming",但是你能理解这段代码吗?当然你也可以这样做
https://stackoverflow.com/questions/34822476
复制相似问题