problem 4-6 质数求和 时间限制:1S 问题描述 输入一个大于20的正整数p,求出正整数范围内第p个质数(或素数,大于1且只能被1和自己整除的正整数,)到第p+10个质数之和。其中,第1个质数为2,第2个质数为3,第3个质数为5,第4个质数为7,依次类推。 输入说明 一行输入1个整数p,20< p <150。 输出说明 第p个质数到第p+10个质数之和。 输入样例: 21 输出样例: 1081
#include <stdio.h>
int main() {
int p, i, j, n = 0;
int flag = 0;
int sum = 0;
scanf("%d", &p);
int arr[500] = {0};
for (i = 2; i < 2000; i++) {
flag = 0;
for (j = 2; j <= i - 1; j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
arr[n] = i;
n++;
}
}
for (i = p - 1; i <= p + 9; i++) {
sum += arr[i];
}
printf("%d", sum);
return 0;
}
【注意】
这里使用了flag标志,要注意每次标志都要重置!!!!