本文档《C语言-判定质数》介绍了如何使用C语言编写程序来判断一个给定的自然数是否为质数,包括相关算法和代码实现。
C语言判断质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。质数也称为素数。
一、质数概念
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如,2、3、5、7等都是质数。
二、判断质数的方法
可以使用for语句、if语句以及break语句来实现这一目标:
```c
#include
#include
int main() {
int n, a = 0, i, k;
scanf(%d, &n);
k = sqrt(n);
for (i = 2; i <= k; i++) {
if (n % i == 0) {
a = 1;
break;
}
}
if (a == 1) {
printf(%d不是质数, n);
} else {
printf(%d是质数, n);
}
return 0;
}
```
三、输出100以内的质数
可以通过以下代码来实现:
```c
#include
#include
int main() {
int n, i, k;
for (n = 2; n <= 100; n++) {
k = sqrt(n);
for (i = 2; i <= k; i++) {
if (n % i == 0) {
break;
}
}
if (i > k) {
printf(%d, n);
}
}
return 0;
}
```
四、输出100以内的质数,每5个换行
可以使用以下代码实现:
```c
#include
#include
int main() {
int n, i, k, count = 0;
for (n = 2; n <= 100; n++) {
k = sqrt(n);
for (i = 2; i <= k; i++) {
if (n % i == 0) {
break;
}
}
if (i > k) {
printf(%2d , n);
count++;
if(count % 5 == 0){
printf(\n);
}
}
}
return 0;
}
```
五、任意输入两个正整数,输出这两个整数之间的所有质数
可以使用以下代码实现:
```c
#include
#include
int main() {
int n, m, i, j, count = 0;
scanf(%d %d, &n, &m);
for (i = n; i <= m; i++) {
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
break;
}
}
if(j > sqrt(i)){
printf(%d , i);
count++;
if(count % 5 == 0){
printf(\n);
}
}
}
return 0;
}
```
六、通过自定义函数isprime(),实现质数的判断
可以使用以下代码来创建一个名为`isprime()`的函数:
```c
#include
#include
int isprime(int n) {
int i, k = sqrt(n);
for (i = 2; i <= k; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf(%d, &n);
if(isprime(n)){
printf(%d是质数, n);
} else{
printf(%d不是质数, n);
}
return 0;
}
```
这些方法适用于判断特定数字是否为质数,以及输出指定范围内的所有质数。