c++从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
时间: 2024-06-13 22:05:58 浏览: 30
以下是C++代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
bool flag = false;
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 10 == 1 && isPrime(i)) {
flag = true;
sum += i;
}
}
if (flag) {
cout << sum << endl;
} else {
cout << -1 << endl;
}
return 0;
}
```
相关问题
题1 题2 题3 题4 题5 补全如下代码段,计算整数n中个位和十位的值:a=n110;//个位 b=(n②10)310;//十位 代码1 代码2 代码③ 提交
代码1:
```c++
#include <iostream>
using namespace std;
int main() {
int n; // 声明整数n
cin >> n; // 从控制台输入整数n
int a = n % 10; // 计算个位
int b = (n / 10) % 10; // 计算十位
cout << "个位:" << a << endl;
cout << "十位:" << b << endl; // 输出结果
return 0;
}
```
代码2:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 从控制台输入整数n
int a = n % 10; // 计算个位
int b = (n / 10) % 10; // 计算十位
System.out.println("个位:" + a);
System.out.println("十位:" + b); // 输出结果
}
}
```
代码3:
```python
n = int(input()) # 从控制台输入整数n
a = n % 10 # 计算个位
b = (n // 10) % 10 # 计算十位
print("个位:", a)
print("十位:", b) # 输出结果
```
运用C++采用基数排序对自己输入20000个包含负数整数数组进行从小到大和从大到小的排序并输出结果
以下是使用基数排序算法对用户输入的包含负数的20000个整数数组进行从小到大和从大到小排序并输出结果的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
const int MAX_DIGITS = 10; // 数字的最大位数
// 获取数字的某个位上的值
int getDigit(int num, int digit) {
num = std::abs(num); // 处理负数
for (int i = 0; i < digit - 1; i++) {
num /= 10;
}
return num % 10;
}
// 基数排序
void radixSort(std::vector<int>& data, bool ascending) {
int maxNum = *std::max_element(data.begin(), data.end(), [](int a, int b) {
return std::abs(a) < std::abs(b);
}); // 获取绝对值最大的数
int digitNum = 1; // 位数
while (maxNum > 10) {
maxNum /= 10;
digitNum++;
}
std::vector<std::vector<int>> buckets(10); // 桶数组
std::vector<int> temp(data.size(), 0); // 临时数组
for (int d = 1; d <= digitNum; d++) {
// 将数据分配到桶中
for (int i = 0; i < data.size(); i++) {
int digit = getDigit(data[i], d);
buckets[digit].push_back(data[i]);
}
// 将桶中的数据按顺序放回数组
int index = 0;
if (ascending) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < buckets[i].size(); j++) {
data[index++] = buckets[i][j];
}
buckets[i].clear();
}
} else {
for (int i = 9; i >= 0; i--) {
for (int j = 0; j < buckets[i].size(); j++) {
data[index++] = buckets[i][j];
}
buckets[i].clear();
}
}
}
}
int main() {
std::vector<int> data(20000); // 创建包含20000个整数的数组
std::cout << "Enter 20000 integers:\n";
// 接收用户输入的数据
for (int i = 0; i < 20000; i++) {
std::cin >> data[i];
}
// 从小到大排序
radixSort(data, true);
std::cout << "Sorted in ascending order:\n";
for (int i = 0; i < 20000; i++) {
std::cout << data[i] << " ";
}
std::cout << "\n";
// 从大到小排序
radixSort(data, false);
std::cout << "Sorted in descending order:\n";
for (int i = 0; i < 20000; i++) {
std::cout << data[i] << " ";
}
std::cout << "\n";
return 0;
}
```
在上述示例代码中,我们首先创建一个包含20000个整数的数组,并将用户输入的数据存储在数组中。然后,我们调用 `radixSort` 函数对数组进行从小到大排序,并输出排序结果。接着,我们再次调用 `radixSort` 函数对数组进行从大到小排序,并输出排序结果。
请注意,示例代码中的排序结果直接输出到控制台。用户可以按照程序提示输入20000个整数,并观察排序后的结果。
希望这可以帮助到您!如果还有其他问题,请随时提问。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)