solution.md 1.4 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5 6 7 8 9 10 11
# n个素数的求和问题。

<p>给定n&#xff08;n≤100&#xff09;个正整数&#xff0c;所有正整数均≤1000000&#xff1b;求其中所有素数的和。
例如给定序列&#xff1a; 2 3 4 5 6&#xff0c;素数和为&#xff1a;10
给定序列&#xff1a; 3 4 5 6 7&#xff0c; 素数和为&#xff1a;15
给定序列&#xff1a; 12 19 23 35 68 71&#xff0c; 素数和为&#xff1a; 113
输入格式:
输入为两行。第一行是一个正整数n&#xff0c;表示有多少个数据。第二行是n个正整数组成的序列。
输出格式:
输出一个正整数&#xff0c;是上述序列中所有素数之和。</p>

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
以下程序实现了这一功能,请你填补空白处内容:

```cpp
#include <stdio.h>
int isprime( int n);
int main()
{
	int i,n,m,s=0;
	scanf("%d", &n);
	for( i=0; i<n; i++ ) {
		scanf("%d", &m);
		if(isprime(m)){
			s+=m;
		}
	}
	printf("%d", s);
	return 0;
}
int isprime(int n)
{
	int i;
	if(n<=1) return 0;
	for(i=2;i*i<=n;i++)
		_______________
	return 1;
}
```

每日一练社区's avatar
每日一练社区 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
## template

```cpp
#include <stdio.h>
int isprime( int n);
int main()
{
	int i,n,m,s=0;
	scanf("%d", &n);
	for( i=0; i<n; i++ ) {
		scanf("%d", &m);
		if(isprime(m)){
			s+=m;
		}
	}
	printf("%d", s);
	return 0;
}
int isprime(int n)
{
	int i;
	if(n<=1) return 0;
	for(i=2;i*i<=n;i++)
		if(n%i==0) return 0;
	return 1;
}
```

## 答案

```cpp
71
if(n%i==0) return 0;
每日一练社区's avatar
每日一练社区 已提交
72 73 74 75 76 77 78
```

## 选项

### A

```cpp
79
if(n/i==0) return 0;
每日一练社区's avatar
每日一练社区 已提交
80 81 82 83 84
```

### B

```cpp
85
if(n%i==0) return 1;
每日一练社区's avatar
每日一练社区 已提交
86 87 88 89 90
```

### C

```cpp
91
if(n%i==1) return 0;
每日一练社区's avatar
每日一练社区 已提交
92
```