修改如下,供参考:
#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呢?你没规定返回什么,那不就返回个随机值吗