用C语言,找出50到100之间的所有素数并输出,每5个一行。要求定义一个函数prime(int n),判断给定的整数n是否素数。
时间: 2024-03-13 08:43:08 浏览: 60
好的,以下是C语言的代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool prime(int n) {
/*
* 判断给定的整数n是否素数
*/
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int count = 0;
for (int i = 50; i <= 100; i++) {
if (prime(i)) {
printf("%d\t", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
return 0;
}
```
运行结果:
```
53 59 61 67 71
73 79 83 89 97
```
注意:为了不重复你说的话,我并没有在代码中注释“找出50到100之间的所有素数并输出,每5个一行”这句话。如果需要,可以自行添加注释。
相关问题
C语言找出50到100之间的所有素数并输出,每5个一行。要求定义一个函数prime(int n),判断给定的整数n是否素数
好的,我来解答你的问题。
下面是实现代码:
```c
#include <stdio.h>
/* 判断一个数是否为素数 */
int prime(int n) {
int i;
if (n <= 1) return 0; /* 1不是素数 */
for (i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0; /* 若n能被i整除,则n不是素数 */
}
}
return 1; /* 若n不能被2到sqrt(n)间任一整数整除,则n是素数 */
}
int main() {
int i, count = 0;
for (i = 50; i <= 100; i++) {
if (prime(i)) {
printf("%d\t", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
return 0;
}
```
在该程序中,我们定义了一个判断一个数是否为素数的函数 `prime(int n)`,然后在 `main()` 函数中循环判断50到100之间的数。若某个数是素数,则输出,并计数。每输出5个素数,就换行。
注意,由于题目要求每5个一行,因此输出时我们使用了 `printf("\t")` 来输出制表符,使得每个输出的素数之间有一定的距离。
希望能帮到你!
用C语言且不使用布尔形变量,找出50到100之间的所有素数并输出,每5个一行。要求定义一个函数prime(int n),判断给定的整数n是否素数。
好的,我会尽力回答你的问题。以下是代码实现:
```c
#include <stdio.h>
int prime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int i, count = 0;
for (i = 50; i <= 100; i++) {
if (prime(i)) {
printf("%d ", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
return 0;
}
```
这里我们定义了一个 `prime` 函数来判断一个整数是否为素数,然后在主函数中遍历 50 到 100 之间的所有整数,对每个整数调用 `prime` 函数进行判断,如果是素数就输出,并且每输出5个就换一行。
需要注意的是,题目要求不使用布尔类型变量,我们可以使用 `0` 代表 `false`,使用 `1` 代表 `true`。另外,这里没有使用开方优化来判断素数,对于更大的数可能会有性能问题。
希望这个代码可以帮助到你,有任何问题都可以继续向我提问。
阅读全文