用c语言编写程序,输入2个正整数 m和n,统计m和n之间素数的个数。
时间: 2024-10-01 22:03:38 浏览: 32
在 C 语言中编写程序来统计两个正整数 m 和 n 之间的素数个数,你可以采用以下步骤:
1. 定义一个函数 `is_prime()` 来判断一个数是否是素数。这通常通过检查该数是否能被小于它本身的数字整除来完成,除了 1 和自身。
```c
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
```
2. 主函数 `main()` 中,先获取用户输入的 m 和 n,然后遍历这个区间,对每个数调用 `is_prime()` 函数,计数非零返回值(即素数),最后打印结果。
```c
#include <stdio.h>
int main() {
int m, n, count = 0;
printf("请输入两个正整数 m 和 n: ");
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++) {
if (is_prime(i))
count++;
}
printf("在 %d 到 %d 之间的素数个数为: %d\n", m, n, count);
return 0;
}
```
相关问题
用c语言的嵌套循环编写程序,输入2个正整数 m和n,统计m和n之间素数的个数。
在C语言中,你可以使用嵌套循环结合条件判断的方式来编写一个程序,用于计算并统计从m到n之间的素数个数。以下是简单的步骤:
首先,定义一个函数`isPrime()`来检查一个数是否是素数。然后,使用两层for循环遍历从m到n的所有整数。
```c
#include <stdio.h>
// 判断是否为素数的辅助函数
int isPrime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) { // 只需要检查到i*i即可,因为大于根号n的因数必定小于根号n
if (num % i == 0)
return 0;
}
return 1;
}
// 主函数计算并打印素数个数
int countPrimes(int m, int n) {
int primeCount = 0;
for (int i = m; i <= n; i++) {
if (isPrime(i))
primeCount++;
}
printf("在%d到%d之间,共有%d个素数。\n", m, n, primeCount);
return primeCount;
}
int main() {
int m, n;
printf("请输入两个正整数m和n: ");
scanf("%d %d", &m, &n);
countPrimes(m, n);
return 0;
}
```
当你运行这个程序时,它会提示你输入两个正整数m和n,然后输出这两个数之间(包括m和n)的素数总数。
c语言输入两个正整数m和n,计算其间的所有素数的个数。
以下是C语言计算m和n之间所有素数个数的程序:
```c
#include <stdio.h>
int isPrime(int num) { // 判断是否为素数
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n, count = 0, sum = 0;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++) {
if (isPrime(i)) {
count++;
sum += i;
printf("%d ", i);
}
}
printf("\ncount=%d,sum=%d\n", count, sum);
return 0;
}
```