为什么我输出什么数字都是0,tech说我这个程序代码思路没问题啊.求解

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

我的题目:编写程序,求出100到300之间的所有非偶数非素数的数的个数。63

#include<stdio.h>
int fun(int n)
{
int sum=0;
while (n > 100 && n < 300 )
{
if(PRM(n))
if (n%2!=0)
{
sum = sum + 1;
printf("%d\n", n);
}
n++;
}
return sum;
}
int PRM(int n)
{
int i;
for (i = 2; i < n; i++)
{

    if (n % i == 0)
        return 1;
    return 0;
}

}

你这代码写的属实是有一点乱,因为你的子函数PRM() for循环的第一次子函数PRM()就结束了,偶数return 1,进入if判定,第二个if()不通过;奇数return 0,第一个if()无法通过判定

你的main函数呢?