C语言 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。 输入样例: 2 11 111
时间: 2023-06-14 15:02:57 浏览: 314
以下是一个 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(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
在C语言中,我们可以编写一个函数来判断一个正整数是否是素数。下面是一个简单的算法:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) { // 1不是素数,0也不是
return false;
}
for (int i = 2; i * i <= num; i++) { // 只需检查到其平方根即可
if (num % i == 0) { // 如果能被整除,说明不是素数
return false;
}
}
return true; // 如果没找到因子,那么就是素数
}
int main() {
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
int num;
scanf("%d", &num);
if (is_prime(num)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
```
这个程序首先读取用户输入的正整数N,然后对于每一个数字num,调用`is_prime()`函数判断它是否为素数。如果是素数则输出"Yes",否则输出"No"。
c语言代码打出输入格式: 输入在第一行给出一 一个正整数N (S 10),随后w行, 每行给出一个小于231的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes ,否则输出No。
以下是你需要的代码:
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n); // 读入需要判断的正整数的个数
while (n--)
{
unsigned int num;
scanf("%u", &num); // 读入需要判断的正整数
// 判断是否为素数
int i;
for (i = 2; i <= num / i; i++)
{
if (num % i == 0)
{
printf("No\n");
break;
}
}
if (i > num / i)
{
printf("Yes\n");
}
}
return 0;
}
```
其中,使用了 `scanf` 函数读入需要判断的正整数,用循环对每个数判断是否为素数,最终输出 Yes 或 No。注意,由于需要判断的正整数可能很大,因此需要使用 `unsigned int` 类型来存储。
阅读全文