c语言判断n个数为素数
时间: 2024-06-13 19:05:49 浏览: 88
以下是两种C语言判断n个数为素数的方法:
方法一:判断n是否为素数,如果是素数则输出“n是素数”,否则输出“n不是素数”。
```c
#include <stdio.h>
int main() {
int i, n;
scanf("%d", &n);
if (n <= 2) {
printf("%d不是素数\n", n);
} else {
for (i = 2; i <= n - 1; i++) {
if (n % i == 0) break;
}
if (i >= n) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
}
return 0;
}
```
方法二:判断n是否为素数,如果是素数则输出“n是素数”,否则输出“n不是素数”。
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, n;
scanf("%d", &n);
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) break;
}
if (i > sqrt(n)) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
return 0;
}
```
相关问题
c语言判断多个数为素数
要判断多个数是否为素数,可以使用循环结构,对每个数都进行素数判断。以下是两种常见的C语言判断多个数为素数的方法:
方法一:使用函数
可以定义一个函数来判断一个数是否为素数,然后在主函数中循环调用该函数即可。代码示例如下:
```
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
int i, j;
j = (int)sqrt(n);
for (i = 2; i <= j; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, i;
printf("Please input numbers: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
if (isPrime(i)) {
printf("%d is prime!\n", i);
} else {
printf("%d is not prime!\n", i);
}
}
return 0;
}
```
方法二:使用嵌套循环
可以使用嵌套循环,外层循环遍历每个数,内层循环判断该数是否为素数。代码示例如下:
```
#include <stdio.h>
int main() {
int n, i, j;
printf("Please input numbers: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
printf("%d is not prime!\n", i);
break;
}
}
if (j > i / 2) {
printf("%d is prime!\n", i);
}
}
return 0;
}
```
c语言判断一个数为素数
以下是三种判断一个数为素数的C语言方法:
方法一:判断一个数能否被2到这个数-1之间的数整除,如果能,则不是素数,否则是素数。
```c
#include <stdio.h>
int main() {
int i, n;
scanf("%d", &n);
if (n <= 2) {
printf("%d不是素数\n", n);
} else {
for (i = 2; i <= n - 1; i++) {
if (n % i == 0) break;
}
if (i >= n) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
}
return 0;
}
```
方法二:判断一个数能否被2到这个数的平方根之间的数整除,如果能,则不是素数,否则是素数。
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, n;
scanf("%d", &n);
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) break;
}
if (i > sqrt(n)) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
return 0;
}
```
方法三:使用标记数组,将2到n之间的数都标记为素数,然后从2开始,将其倍数标记为非素数,最后判断n是否为素数。
```c
#include <stdio.h>
#include <string.h>
int main() {
int i, j, n;
scanf("%d", &n);
int is_prime[n + 1];
memset(is_prime, 1, sizeof(is_prime));
is_prime[0] = is_prime[1] = 0;
for (i = 2; i <= n; i++) {
if (is_prime[i]) {
for (j = i * 2; j <= n; j += i) {
is_prime[j] = 0;
}
}
}
if (is_prime[n]) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
return 0;
}
```
阅读全文