C语言 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。 输入样例: 2 11 111
时间: 2023-06-14 10:02:57 浏览: 255
以下是一个 C 语言的程序示例,可以实现题目要求的功能:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num) { // 判断一个数是否为素数
if (num <= 1) {
return 0;
}
int sqr = (int)sqrt(num);
for (int i = 2; i <= sqr; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, num;
scanf("%d", &n);
while (n--) {
scanf("%d", &num);
if (is_prime(num)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
```
代码中的 `is_prime` 函数用于判断一个数是否为素数,依次枚举 2 到该数平方根之间的数,如果存在能够整除该数的因子,则该数不为素数,否则为素数。主函数中先读入需要判断的数的个数,然后每次读入一个数,调用 `is_prime` 函数判断是否为素数,并输出相应的结果。
相关问题
C语言实现输入在第一行给出一个正整数,随后N行,每行给出一个正整数。
您好!要实现这个功能,您可以使用C语言的标准输入函数scanf来读取用户输入的数据。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int N;
printf("请输入一个正整数:");
scanf("%d", &N);
printf("请依次输入%d个正整数:\n", N);
for (int i = 0; i < N; i++) {
int num;
scanf("%d", &num);
printf("您输入的第%d个正整数是:%d\n", i+1, num);
}
return 0;
}
```
这段代码会先让用户输入一个正整数N,然后在接下来的N行中读取用户输入的正整数,并逐行输出。您可以根据自己的需求对这段代码进行修改。希望能对您有所帮助!如果您还有其他问题,请继续提问。
C语言用指针表示,输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间 以空格分隔。
以下是一个示例代码,实现了输入m行n列的矩阵(即二维数组):
```c
#include <stdio.h>
int main(){
int m, n, i, j;
scanf("%d%d", &m, &n); // 输入矩阵的行数m和列数n
int matrix[m][n]; // 定义m行n列的矩阵
for(i=0; i<m; i++){
for(j=0; j<n; j++){
scanf("%d", &matrix[i][j]); // 输入矩阵的每个元素
}
}
// 输出矩阵
printf("The matrix is:\n");
for(i=0; i<m; i++){
for(j=0; j<n; j++){
printf("%d ", matrix[i][j]); // 输出矩阵的每个元素
}
printf("\n");
}
return 0;
}
```
其中,`scanf` 是 C 标准库中的函数,用于输入数据。`&m` 和 `&n` 分别表示输入的行数和列数,`&matrix[i][j]` 表示输入矩阵的第 `i` 行第 `j` 列的元素。输出矩阵同理。