c++从键盘输入m和n,求m到n范围内个位数为3或7的素数,进行如下操作:①输出所有素数并求和②对所有满足条件,且十位数不为6的素数求和(用continue)
时间: 2024-11-10 17:27:12 浏览: 5
在C++中,你可以使用以下步骤来实现这个功能:
首先,我们需要编写一个函数来判断一个数是否为素数。然后,我们获取用户输入的m和n,遍历这个范围内的每个数,检查其个位数是否为3或7,并且如果是素数。对于素数,我们将其添加到总和中。如果某个数符合条件,但十位数是6,则跳过它(使用`continue`语句)。最后,我们会输出所有的素数及其总和以及符合条件但十位非6的素数的和。
```cpp
#include <iostream>
using namespace std;
// 判断是否为素数的辅助函数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0)
return false;
}
return true;
}
int main() {
int m, n;
cout << "请输入起始值m:";
cin >> m;
cout << "请输入结束值n:";
cin >> n;
int sumAllPrimes = 0;
int sumSpecialPrimes = 0;
for (int i = m; i <= n; ++i) {
if (i % 10 == 3 || i % 10 == 7 && isPrime(i)) {
cout << i << " ";
sumAllPrimes += i;
// 如果十位不是6,累加sumSpecialPrimes
if (i / 10 != 6) {
sumSpecialPrimes += i;
}
} else if (i % 10 == 3 || i % 10 == 7) {
// 跳过十位为6的数
continue;
}
}
cout << endl;
cout << "所有素数的和为:" << sumAllPrimes << endl;
cout << "满足条件且十位非6的素数的和为:" << sumSpecialPrimes << endl;
return 0;
}
```
阅读全文