函数第五章pta训练


#include 
int fun3(int m);
int main(void)
{   int n;
    for (n = 1; n < 10; n++) 
        if (fun3(n) == 1) printf("%d ", n);                   /* %d后有1个空格 */
    return 0;
}
int fun3(int m)
{   int i;
    if (m == 2 || m == 3) return 1;     
    if (m < 2 || m % 2 == 0) return 0;
    for (i = 3; i < m; i = i + 2) 
        if (m % i == 0) return 0;
    return 1; 
  } 

这个代码什么意思?最后输出2 3 5 7

这段代码实现了一个简单的功能,即输出1到9之间的所有素数。

主函数中使用了一个for循环,从1到9依次遍历每个数字,然后调用函数fun3来判断这个数字是否是素数。如果fun3返回值为1,表示这个数字是素数,就在控制台输出这个数字。

函数fun3用来判断一个数字m是否是素数。如果m等于2或3,则直接返回1,因为这两个数字是素数。如果m小于2或者m是偶数,则返回0,因为这些数字肯定不是素数。对于其他大于3的奇数m,函数fun3通过循环检查m是否能被比它小的奇数整除来判断它是否是素数,如果找到了一个能整除m的奇数,则m不是素数,返回0。如果没有找到这样的奇数,则m是素数,返回1。

因此,这段代码的输出结果应该是:

2 3 5 7

显然是求质数的函数吧,判断10以内的质数。写的太奇怪了,判断质数也不用这么啰嗦啊