c++自定义函数输出1到100之间的所有的素数。
时间: 2024-04-25 19:02:57 浏览: 13
好的,以下是一个简单的 C++ 自定义函数,用于输出 1 到 100 之间的所有素数:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
for (int i = 1; i <= 100; i++) {
if (isPrime(i)) {
cout << i << " ";
}
}
return 0;
}
```
以上代码中,我们定义了一个名为 `isPrime` 的函数,它接受一个整数参数 `n`,并返回一个布尔值,表示该整数是否为素数。该函数使用了一个常见的判断素数的算法,即从 2 到该数的平方根范围内依次测试是否能整除。
在主函数中,我们循环调用 `isPrime` 函数,输出所有 1 到 100 之间的素数。
相关问题
输出[a,b]区间内所有素数,输出格式为10个素数一行,素数间以一个空格分隔,一行最后一个素数之后没有空格。编写函数判断一个数是否为素数,主函数调用此自定义函数完成题目要求。c++
以下是实现代码:
```c++
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int a, b, cnt = 0;
cin >> a >> b;
for (int i = a; i <= b; i++) {
if (isPrime(i)) {
cnt++;
cout << i;
if (cnt % 10 == 0 || i == b) cout << endl;
else cout << " ";
}
}
return 0;
}
```
首先定义一个 `isPrime` 函数,用于判断一个数是否为素数。判断方法是从 2 开始到该数的平方根遍历,如果存在一个因子,则该数不是素数。
然后在主函数中输入区间的上下界,遍历这个区间内的所有数,如果是素数则按照题目要求输出。具体来说,用一个变量 `cnt` 记录当前已经输出了多少个素数,每输出一个素数就将 `cnt` 加一,当 `cnt` 能被 10 整除或者已经到了区间的右边界时就换行,否则以空格分隔。
注意,题目要求输出的是区间 `[a,b]` 内的所有素数,因此在循环的时候应该包含边界值 `a` 和 `b`。
从键盘任意输入一个整数m,若m不是素数,则计算并输出m的所有因子(不包括1),例如对于16,输出2、4、8;否则输出“m是素数!”。要求:判断素数必须使用自定义函数实现,m通过主函数输入
好的,我已经理解了你的问题。以下是 C++ 代码实现:
```
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if(n <= 1) return false;
for(int i = 2; i <= sqrt(n); i++) {
if(n % i == 0) return false;
}
return true;
}
int main() {
int m;
cin >> m;
if(isPrime(m)) {
cout << m << "是素数!" << endl;
}
else {
cout << m << "的因子有:";
for(int i = 2; i <= m / 2; i++) {
if(m % i == 0) {
cout << i << " ";
}
}
cout << endl;
}
return 0;
}
```
代码中的 `isPrime` 函数用于判断一个整数是否是素数,若是素数则返回 `true`,否则返回 `false`。主函数中先读入整数 `m`,然后判断它是否是素数,如果是素数则输出提示信息,否则遍历 `m` 的所有因子并输出。