用函数找出因子中的所有质数,不包括该数本身

img


这个是我写的程序,试运行的时候到了8就会多输出一个2

img


这个是题目。

修改如下,供参考:

#include <stdio.h>
int main()
{
    int func(int x);
    int i,n;
    scanf("%d",&n);
    for(i = 1;i < n; i++){
        if (n%i==0 && func(i))
                printf("%d\n",i);
    }

    return 0;
}
int func(int x)
{
    int i;
    if (x <= 3) return x > 1;
    for(i = 2;i*i <= x; i++)
        if(x%i == 0) return 0;
    return 1;
}

你的函数有问题,如果j>q的话返回x,那如果j<=q呢?你没规定返回什么,那不就返回个随机值吗