C语言从键盘输入一组整数,以-1结束。依次输出其中的素数,并统计个数。
时间: 2024-11-13 08:21:22 浏览: 4
在C语言中,你可以通过以下步骤来实现这个功能:
1. 定义一个函数`is_prime`来检查一个数是否为素数。该函数通常会遍历到该数的平方根,如果能被除了1和自身以外的任何整数整除,则不是素数。
```c
int is_prime(int n) {
if (n <= 1)
return 0;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0)
return 0;
}
return 1;
}
```
2. 主程序部分,创建一个循环来读取用户的输入直到遇到-1。对于每个输入的整数,调用`is_prime`函数并检查结果。如果是素数就打印出来,并在素数计数器上加一。
```c
int main() {
int num, count = 0;
printf("请输入一组整数(-1结束): ");
while ((num = getchar()) != EOF && num != -1) {
num = getchar(); // 消耗掉换行符
if (is_prime(num)) {
printf("%d ", num);
count++;
}
}
printf("\n素数总数: %d\n", count);
return 0;
}
```
相关问题
C语言循环语句从键盘输入一组整数,以-1结束。依次输出其中的素数,并统计个数。
在C语言中,你可以通过使用`for`循环和条件判断来实现这个功能。首先,你需要获取用户输入的整数序列,直到遇到-1为止。然后,对每个数字进行素数检查,如果它是素数就将其打印出来,并增加素数计数器。下面是基本的步骤:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
int main() {
int num, prime_count = 0;
printf("请输入一组整数(-1结束): ");
while ((scanf("%d", &num)) == 1 && num != -1) {
if (is_prime(num)) {
printf("%d ", num);
prime_count++;
}
}
printf("\n共有%d个素数。\n", prime_count);
return 0;
}
```
在这个程序中,`is_prime`函数用于检查一个数是否为素数,主循环则读取用户的输入并检查每个数字。当输入-1时,跳出循环,最后输出素数的总数。
C语言输入一组整数,以-1结束。依次输出其中的素数,并统计个数。
在C语言中,我们可以编写一个函数来检测输入的整数是否为素数,同时使用循环遍历数组直到遇到-1为止。以下是一个简单的实现方案:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型
// 判断一个数是否为素数的辅助函数
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int input[100]; // 假设我们最多接受100个整数输入
int count = 0; // 素数计数器
int num;
while ((num = getchar()) != EOF && num != -1) { // 从标准输入获取整数
input[count++] = num; // 存储到数组中
}
printf("素数列表及个数:\n");
for (int i = 0; i < count; i++) {
if (is_prime(input[i])) {
printf("%d ", input[i]);
}
}
printf("\n共有 %d 个素数。\n", count); // 输出素数总数
return 0;
}
```
这段代码首先定义了一个辅助函数`is_prime`用于判断一个数是否为素数,然后通过`getchar`从标准输入获取整数,直到遇到EOF或-1。在主循环中,我们检查每个输入的整数是否为素数,并统计素数的数量。
阅读全文