c++从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
时间: 2024-06-13 21:05:58 浏览: 142
以下是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;
}
```
相关问题
输入整数n,1<=n<=10,输出n行n列图案。 图例 输入格式: 输入一个整数 输出格式: 输出图案,图案中的每个数所占宽度为4 输入样例: 5 输出样例: 11111 12222 12333 12344 12345 代码长度限制时间限制
这是一个简单的编程任务,通常会涉及到控制台打印或字符串操作。你可以使用嵌套循环来完成这个任务。下面是一个使用Python编写的简单示例:
```python
def print_pattern(n):
for i in range(1, n+1):
line = ''
for j in range(1, n+1):
line += str(j).rjust(4) # 使用right justify函数保证数字占满4位
print(line)
# 示例:
input_num = int(input("请输入一个整数: "))
print_pattern(input_num)
```
在这个代码中,`rjust(4)`函数用于将数字右对齐并填充空格,使其总宽度为4。然后外层循环遍历每一行,内层循环遍历每一列。
**相关问题--:**
1. 如果需要输出图案中的每个数字都为中心对齐,应该如何修改代码?
2. 这段代码在其他编程语言(如Java、C++)中如何实现?
3. 如果我想让数字之间有间隔,而不是直接相邻,应该怎么调整呢?
C++题目:输入一个正整数n,然后再输入一个正整数x(1<=x<=9),判断这个数是不是x倍数,或者末尾含有x,如果符合条件输出yes否则输出no。
这是一个简单的C++控制台应用程序题目,可以按照以下步骤来解决:
```cpp
#include <iostream>
using namespace std;
bool isMultipleOrEndsWith(int n, int x) {
// 检查是否是x的倍数
if (n % x == 0)
return true;
// 如果不是,检查末尾是否是x
string strNum = to_string(n);
for (int i = strNum.size() - 1; i >= 0; i--) {
if (strNum[i] - '0' == x)
return true;
}
return false;
}
int main() {
int n, x;
cout << "请输入一个正整数n: ";
cin >> n;
cout << "请输入一个数字x (1 <= x <= 9): ";
cin >> x;
if (isMultipleOrEndsWith(n, x))
cout << "yes" << endl;
else
cout << "no" << endl;
return 0;
}
```
在这个程序中,首先将输入的整数转换为字符串,然后逐位检查字符串是否包含x。如果找到或n本身就是x的倍数,则返回`true`并输出`yes`,否则输出`no`。
阅读全文