用c语言给你一个整数n, 判断它是否是素数。注意1不是素数。 输入描述: 第一行输入一个整数T,表示需要判断的数的个数 接下来T行每行一个整数n,表示需要判断的数。
时间: 2024-06-13 08:04:31 浏览: 150
素数是指只能被1和自身整除的数,因此判断一个数是否为素数,只需要判断它是否能被2到sqrt(n)之间的整数整除即可。具体实现可以编写一个函数来完成。以下是代码实现:
```
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int T, n;
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
if (isPrime(n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
}
return 0;
}
```
相关问题
用c语言输入一个正整数,判断它是否为素数。
以下是判断一个正整数是否为素数的 C 语言代码:
```c
#include <stdio.h>
int main() {
int n, i, isPrime = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n <= 1) {
isPrime = 0;
} else {
for (i = 2; i * i <= n; i++) {
if (n % i == 0) {
isPrime = 0;
break;
}
}
}
if (isPrime) {
printf("%d是素数。\n", n);
} else {
printf("%d不是素数。\n", n);
}
return 0;
}
```
首先,我们从用户输入一个正整数开始。如果这个数小于等于 1,那么它不是素数,因为素数只能是大于 1 的数,所以 `isPrime` 标志位赋值为 0。
否则,我们从 2 开始,一直循环到 $i*i \le n$ 为止,判断这个正整数是否可以被 $2$ 到 $\sqrt{n}$ 之间的任意一个数整除。如果可以,就说明它不是素数,将 `isPrime` 标志位赋值为 0,并跳出循环。
最后,我们根据 `isPrime` 标志位的值输出相应的结果。
用c语言素数元素的个数 题目描述 输入 n 个整数,并存入数组 a,统计输出其中值为素数的元素个数。 输入格式: 在第一行输入一个正整数 n(1<n<=100); 在第一行输入 n 个正整数,数据之间用空格分隔。 输出格式: 输出素数的元素个数。 输入样例: 10 71 39 45 18 87 28 67 91 53 7 输出样例: 4
下面是用C语言编写的求素数元素个数的代码:
```c
#include <stdio.h>
int is_prime(int n) // 判断n是否是素数
{
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n;
scanf("%d", &n);
int a[n];
int count = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
if (is_prime(a[i])) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
思路是先定义一个 `is_prime` 函数来判断一个整数是否是素数,然后在主函数中读入数组,并遍历数组,统计素数元素的个数,最后输出即可。
阅读全文