1、求一个10位数数组中负数的和、奇数的和、偶数的和以及质数的和,编写一个程序实现。
时间: 2024-12-02 10:19:30 浏览: 16
数和代数总复习教学教案.doc
为了编写这样一个程序,我们可以采用以下步骤:
1. 定义一个函数用于判断数字是否为质数,因为直接遍历所有可能因子检查不太高效。可以使用一个更简单的质数检测算法,比如只考虑小于等于sqrt(n)的因子。
```python
import math
def is_prime(num):
if num <= 1:
return False
if num == 2:
return True
if num % 2 == 0:
return num == 2
for i in range(3, int(math.sqrt(num)) + 1, 2):
if num % i == 0:
return False
return True
```
2. 创建一个函数来计算数组中各项的总和,并根据条件分类。
```python
def sum_by_condition(arr):
total_sum = sum(arr)
neg_sum = sum(i for i in arr if i < 0)
odd_sum = sum(i for i in arr if i % 2 != 0)
even_sum = total_sum - odd_sum
prime_sum = sum(i for i in arr if is_prime(i))
return neg_sum, odd_sum, even_sum, prime_sum
```
3. 测试该函数,给定一个包含10位数的数组作为输入。
```python
# 示例数组
numbers = [5, -7, 12, 3, -9, 23, 46, -11, 89, 101]
neg_sum, odd_sum, even_sum, prime_sum = sum_by_condition(numbers)
print("负数之和:", neg_sum)
print("奇数之和:", odd_sum)
print("偶数之和:", even_sum)
print("质数之和:", prime_sum)
```
阅读全文