编程打印200~300之间所有素数。要求判断一个数是否是素数用函数实现,打印结果请在主函数实现。判断一个数是否是素数函数原型为: int fun(int m); 参数说明: 参 数:m是要进行判断的数; 返回值:若此数是素数,则返回值为1;否则返回值为0 **输入提示信息: 无 **输入数据格式要求: 无 **输出数据格式要求: "%d\n" 注:不允许使用goto语句
时间: 2023-05-31 11:19:22 浏览: 112
### 回答1:
题目要求编写一个函数,判断一个给定的整数是否是素数,并将判断结果打印出来。如果是素数,则返回1,否则返回0。函数原型为: int fun(int m)。其中,参数m是要进行判断的数;返回值若为1,则说明该数是素数,返回值若为0,则说明该数不是素数。
输入提示信息:无
输入数据格式要求:无
输出数据格式要求:"%d\n"
注:不允许使用goto语句。
### 回答2:
本题可以使用一个嵌套循环来实现,外层循环从200到300遍历所有数字,内层循环从2到当前数字的平方根,判断当前数字是否能够被内层循环中的数整除,若能则说明不是素数,跳出循环。若内层循环完全结束仍未能整除,则说明是素数,输出即可。
代码如下:
```c
#include <stdio.h>
#include <math.h>
// 判断是否是素数的函数
int fun(int m)
{
int i;
for(i=2; i<=sqrt(m); i++) // i从2遍历到m的平方根
{
if(m%i == 0) // 若能够整除说明不是素数
{
return 0;
}
}
return 1; // 循环完毕未能整除说明是素数
}
int main()
{
int i;
for(i=200; i<=300; i++) // i从200遍历到300
{
if(fun(i)) // 调用fun函数判断是否是素数
{
printf("%d\n", i); // 是素数则输出
}
}
return 0;
}
```
### 回答3:
素数指的是只能被1和本身整除的正整数,比如2、3、5、7、11、13等等。编写程序打印出200~300之间的所有素数,可以先用一个函数来判断一个数是否是素数,再在主函数中依次判断200~300之间的各个数是否是素数,如果是则打印出来。
下面是一个简单的示例代码:
```
#include <stdio.h>
// 判断一个数是否是素数,若是则返回1,否则返回0
int fun(int m) {
if (m <= 1) {
return 0; // 1不是素数
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0; // m不是素数
}
}
return 1; // m是素数
}
int main() {
for (int i = 200; i <= 300; i++) {
if (fun(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
首先是判断素数的函数fun,用到了一个常见的优化技巧:只需要枚举小于等于sqrt(m)的因子即可,因为如果存在大于sqrt(m)的因子的话,那么一定存在一个小于sqrt(m)的因子。
在主函数中,依次枚举200~300之间的数,如果是素数则打印出来。注意在输出结果时,需要加上换行符\n,以便于输出结果的清晰明了。
上述代码在运行时,会依次输出如下结果:
```
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
```
这些都是200~300之间的素数。