#abc475d. Alphametic Prime
Alphametic Prime
题目描述
给定一个由小写英文字母组成的字符串 。若存在满足下列条件的素数 ,请求出其中一个。
条件:设 为 的十进制表示(不带多余的前导 0)所对应的字符串。则 ,且对所有满足 的 ,都有
输入格式
S
输出格式
不存在满足条件的素数时,输出 -1。
存在时,输出其中一个这样的素数。答案有多个时,输出任意一个都算正确。
输入示例 1
motor
输出示例 1
10607
示例 1 说明
的「相同位置模式」是:第 位与第 位相同(都是 o),其余各位两两不同。
正好符合:第 、 位都是 0,而 两两不同、也都不等于 。且 是素数。
除此之外,输出 40709 等也算正确。但 81817 不满足条件——它的第 、 位相同(都是 8),而 的第 、 位(m 与 t)并不相同,所以会被判错。
注意条件是「充要」的:相同的字母必须对应相同的数字,不同的字母也必须对应不同的数字。
输入示例 2
byebye
输出示例 2
-1
示例 2 说明
的模式是 ,于是 必然形如 $\overline{xyzxyz} = \overline{xyz} \times 1001 = \overline{xyz} \times 7 \times 11 \times 13$。由于首位不能为 ,,所以这个数一定是合数,故无解。
输入示例 3
coconut
输出示例 3
1010237
示例 3 说明
是允许的最大长度,此时 是 位数。 中不同字母有 c, o, n, u, t 共 个,需要给它们分配 个两两不同的数字。
输入示例 4
a
输出示例 4
2
示例 4 说明
是允许的最小长度,此时只需找一个一位素数即可, 都正确。这组数据用来检验长度为 的边界。
约束条件
- 是长度在 到 之间(含端点)、仅由小写英文字母组成的字符串