用c加加写找出m到n之间的素数个数
时间: 2023-05-14 17:06:47 浏览: 134
以下是用 C++ 写的找出 m 到 n 之间的素数个数的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; i <= sqrt(n); i += 2) {
if (n % i == 0) return false;
}
return true;
}
int countPrimes(int m, int n) {
int count = 0;
for (int i = m; i <= n; i++) {
if (isPrime(i)) count++;
}
return count;
}
int main() {
int m, n;
cout << "请输入 m 和 n 的值:" << endl;
cin >> m >> n;
cout << "m 到 n 之间的素数个数为:" << countPrimes(m, n) << endl;
return 0;
}
```
如果您有任何问题或需要进一步的解释,请随时问我。
相关问题
用c加加写找出m到n之间的素数
以下是用 C++ 写的找出 m 到 n 之间的素数的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool is_prime(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, n;
cout << "请输入 m 和 n:" << endl;
cin >> m >> n;
cout << "m 到 n 之间的素数有:" << endl;
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
如果您需要使用 C 语言编写,可以将 `#include <iostream>` 改为 `#include <stdio.h>`,将 `using namespace std;` 删除,并将 `cout` 改为 `printf`。
C语言,用函数求出m和n两个数之间的所有素数和完数
这里提供两个函数分别用于求素数和完数:
1. 求素数的函数
```c
int isPrime(int n) {
int i;
for (i = 2; i <= n / 2; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
该函数接受一个整数参数n,返回值为1表示n是素数,返回值为0表示n不是素数。该函数的实现思路是从2开始到n/2遍历所有数字,如果n能够整除其中任意一个数字,则n不是素数,否则n是素数。
2. 求完数的函数
```c
int isPerfect(int n) {
int i, sum = 0;
for (i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}
```
该函数接受一个整数参数n,返回值为1表示n是完数,返回值为0表示n不是完数。该函数的实现思路是从1开始到n/2遍历所有数字,如果n能够整除其中任意一个数字,则将该数字加入sum中,最后判断sum是否等于n,如果等于则n是完数,否则n不是完数。
结合以上两个函数,可以编写出求m和n之间所有素数和完数的代码:
```c
#include <stdio.h>
int isPrime(int n);
int isPerfect(int n);
int main() {
int m, n, i, sumPrime = 0, sumPerfect = 0;
printf("请输入m和n:\n");
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++) {
if (isPrime(i)) {
sumPrime += i;
}
if (isPerfect(i)) {
sumPerfect += i;
}
}
printf("%d和%d之间的素数和为:%d\n", m, n, sumPrime);
printf("%d和%d之间的完数和为:%d\n", m, n, sumPerfect);
return 0;
}
int isPrime(int n) {
int i;
for (i = 2; i <= n / 2; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int isPerfect(int n) {
int i, sum = 0;
for (i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}
```