题目内容:
给定两个整数n和m,0<n<=m<=200,编写程序计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意:是第n个素数到第m个素数,不是n和m之间的素数!
输入格式:
两个正整数,第一个表示n,第二个表示m。
输出格式:
输出所求的和。
输入样例:
2 4
输出样例:
15
问题分析
- 素数:因数只有1和它本身的数(即只能被1和它本身整除);
- 首先在无限个数里循环筛选出素数,用一个计数器,每有一个素数就加1;
- 当素数计数器在n和m之间时,sum累加,当计数器等于m时,输出sum;
- 在这段代码里面定义的bool b=0是用了之前第四章笔记中写到的标记变量【C++】第4章:(二)素数算法问题中的break,continue和标记变量
当遇到素数时b=1,跳出循环,这样用b=0和b=1区别开是否是素数。在每次循环之前要重新给b赋值0,之前忘记重新赋值就出错了;
代码如下: