从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1
时间: 2024-10-22 12:14:40 浏览: 53
输入两个正整数m和n求其最大公约数和最小公倍数 (2).pdf
这个问题要求我们编写一个程序,该程序接收用户输入的正整数n,然后找出所有小于或等于n且个位数为1的质数。以下是解决此问题的一般步骤:
1. 首先,我们需要一个函数来判断一个数是否为质数。一个质数是指大于1的自然数,除了1和它本身外没有其他因数。
2. 然后遍历从1到n的所有数字,对每个数字检查它的个位是否为1。如果是,就进一步检验这个数字是否是质数。
3. 使用质数判断函数检查每个个位为1的数字,如果它是质数,就将其打印出来。
4. 如果在整个范围内都没有找到满足条件的质数,最终返回-1。
以下是Python的一个简化版示例代码:
```python
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def find_primes_with_digit_one(n):
result = []
for num in range(1, n + 1):
if num % 10 == 1 and is_prime(num):
result.append(num)
if not result:
return -1
else:
return result
# 用户输入n
n = int(input("请输入一个正整数n: "))
primes = find_primes_with_digit_one(n)
if primes != -1:
print("个位为1的质数有:", primes)
else:
print("没有找到符合条件的素数.")
```
阅读全文