输入一行由数字字符(不含字符'0')构成的字符串(最长不超过80字符,以回车结束),从字符串中任意的选取连续的 两个或三个数字字符,构成的数字如果是质数则称为找到一个“串中质数”,请编程计算在给定的字符串中 最多能找到多少个不同的“串中质数” 注:两个“串中质数”,只要它们中有一个字符不同或位置不同,就算不同的两个“串中质数”,例如 2131中有三个串中质数,分别为“13”、“31”和“131” 输入格式 一行字符串(如题目描述) 输出格式 不同的“串中质数”的数量 输入样例 2131 输出样例 3
时间: 2023-02-06 08:26:11 浏览: 67
假设输入的字符串为s,那么可以遍历s的每个位置i,然后从i开始向后取两个或三个数字字符,构成的数字如果是质数,就统计一次。最后输出统计的结果即可。
下面是代码实现:
``` python
def is_prime(n):
# 判断质数的函数
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def main():
s = input()
# 统计答案
cnt = 0
# 遍历字符串的每个位置
for i in range(len(s)):
# 从i开始取两个数字字符
if i < len(s) - 1:
if is_prime(int(s[i:i+2])):
cnt += 1
# 从i开始取三个数字字符
if i < len(s) - 2:
if is_prime(int(s[i:i+3])):
cnt += 1
print(cnt)
if __name__ == '__main__':
main()
```
上面代码中,main函数实现了遍历字符串s的每个位置i,并从i开始取两个或三个数字字符,构成的数字如果是质数,就统计一次。最后输出统计的结果。is_prime函数用来判断一个数是否是质数。
示例输入和输出如下:
输入:
2131
输出:
3