1.判断1-100范围内的自然数是否是素数,如果是素数请输出并统计素数的总个数。c语言
时间: 2024-03-02 12:49:18 浏览: 30
好的,以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int count = 0; // 统计素数个数
for (int i = 2; i <= 100; i++) { // 从2开始遍历到100
int isPrime = 1; // 标记是否为素数,默认为是
for (int j = 2; j < i; j++) { // 遍历2到i-1
if (i % j == 0) { // 如果i能被j整除,说明i不是素数
isPrime = 0; // 标记为不是素数
break; // 跳出循环
}
}
if (isPrime) { // 如果isPrime为1,说明i是素数
printf("%d ", i); // 输出i
count++; // 素数个数加1
}
}
printf("\n素数的总个数为:%d\n", count); // 输出素数个数
return 0;
}
```
输出结果为:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
素数的总个数为:25
```
相关问题
c语言用递归函数判断一个自然数是否为素数,最后结果输出0表示不是,1表示是
好的,以下是一个使用递归函数判断自然数是否为素数的 C 代码,最后结果输出0表示不是素数,1表示是素数:
```c
#include <stdio.h>
int is_prime(int n, int i) {
if (n <= 2) {
return n == 2 ? 1 : 0;
}
else if (n % i == 0) {
return 0;
}
else if (i * i > n) {
return 1;
}
else {
return is_prime(n, i+1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (is_prime(n, 2)) {
printf("%d是素数\n", n);
}
else {
printf("%d不是素数\n", n);
}
return 0;
}
```
在这个程序中,`is_prime` 函数的第一个参数 `n` 是要判断的自然数,第二个参数 `i` 是递归过程中的计数器,初始值为 2。函数首先判断 `n` 是否小于等于 2,如果是,则判断 `n` 是否等于 2,是则返回 1,不是则返回 0。如果 `n` 大于 2,则判断 `n` 能否被 `i` 整除,如果能,则返回 0。如果 `n` 不能被 `i` 整除,则判断 `i` 的平方是否大于 `n`,如果大于,则返回 1,否则递归调用函数 `is_prime`,将 `i` 的值加 1。
在 `main` 函数中,用户输入要判断的自然数,然后调用 `is_prime` 函数进行判断,如果结果为真,则输出该数是素数,否则输出该数不是素数。
用递归函数判断一个自然数是否为素数(0表示不是 1表示是)的C语言代码
以下是实现了题目要求的C语言代码:
```c
#include <stdio.h>
int isPrime(int n, int i) {
if (i == 1) {
return 1;
}
else if (n % i == 0) {
return 0;
}
else {
return isPrime(n, i - 1);
}
}
int main() {
int n = 17;
if (isPrime(n, n - 1)) {
printf("%d是素数\n", n);
}
else {
printf("%d不是素数\n", n);
}
return 0;
}
```
`isPrime`函数用于判断一个自然数`n`是否为素数,`i`为当前测试的因子,初始值为`n-1`。如果`i`递减到1时仍然没有找到任何因子,则说明`n`是素数,返回值为1;如果在递归过程中找到了`n`的一个因子,则说明`n`不是素数,返回值为0。主函数中调用`isPrime`函数判断一个自然数是否为素数,并输出相应的结果。