编写一个函数程序,其功能是判定一个数是否为素数,若是素数则函数返回值为1,若不是素数则函数返回值为0。用此函数判定找出100以内最大的3个素数。
时间: 2023-06-13 09:04:34 浏览: 154
以下是Python的实现代码:
```python
def is_prime(num):
if num < 2:
return 0
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return 0
return 1
primes = []
num = 2
while num < 100:
if is_prime(num):
primes.append(num)
num += 1
primes.sort(reverse=True)
print(primes[:3])
```
输出为:
```
[97, 89, 83]
```
说明100以内最大的3个素数分别为97、89、83。
相关问题
编写函数判断某数是否为素数,如果是素数,则返回1,否则返回0,在main函数中输出数n,调用素数判定函数,判定n是否为素数,若是则输出n is prime,不是则输出n is not prime
好的,下面是代码实现:
```c++
#include <iostream>
using namespace std;
int is_prime(int n) {
if(n <= 1) return 0; // 小于等于1的数都不是素数
for(int i = 2; i * i <= n; i++) {
if(n % i == 0) return 0; // 如果能整除,则不是素数
}
return 1; // 否则是素数
}
int main() {
int n;
cout << "Please input a number: ";
cin >> n;
if(is_prime(n)) cout << n << " is prime" << endl;
else cout << n << " is not prime" << endl;
return 0;
}
```
使用上述代码,你可以输入一个数字n,程序将会输出该数字是否为素数。如果是素数,则输出 "n is prime",否则输出 "n is not prime"。
将素数判断写成函数,主程序中进行功能判定,若输入值为1,则还需输入一个数,判断是否为素数,若输入值为2,则进行0-100的素数输出,若输入值为3,则输出所有前20个素数。
你可以将素数判断的功能封装到一个名为`is_prime`的函数中,这个函数接受一个整数作为参数,并返回该数字是否为素数。然后,在主程序中,根据用户的不同输入条件进行处理:
1. 如果用户输入的是1,由于1不是素数,你可以提示用户需要再输入一个数,并检查它是否为素数。
2. 对于输入值为2的情况,因为2是最小的素数,可以直接进入循环输出0到100之间的所有素数。
3. 若输入值为3,那么可以创建一个列表存储前20个素数,然后逐个检查并添加符合条件的数字。
下面是一个简单的Python代码示例:
```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():
input_num = int(input("请输入一个数:"))
if input_num == 1:
print("请输入一个整数来判断其是否为素数")
num_to_check = int(input())
if is_prime(num_to_check):
print(f"{num_to_check} 是素数")
else:
print(f"{num_to_check} 不是素数")
elif input_num == 2:
for i in range(0, 101):
if is_prime(i):
print(i)
elif input_num == 3:
primes = []
current_number = 2
while len(primes) < 20:
if is_prime(current_number):
primes.append(current_number)
current_number += 1
print("前20个素数是:", primes)
if __name__ == "__main__":
main()
```
阅读全文