C语言 输入n 输出n以下的质数

C语言,要求输入正整数n,输出n以下所有的质数。
比如说输入是8的话,输出就是 2 3 5 7

我弄了两个for循环就死了..
求助大神

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
int prime(int n){
    int i;
    if(n>2 && !(n&1) || n<2)return 0;
    for(i=3; i*i<=n;i+=2)
        if(!(n%i)) return 0;
    return 1;
}
int main(void){
    int n,i;
    printf("Input n(int n>1)...\nn=");
    scanf("%d",&n);
    for(i=2;i<n;i!=2 ? i+=2 : i++)
        if(prime(i))
            printf("%d ",i);
    printf("\n");
    return 0;
}

温馨提示:答案为网友推荐,仅供参考