请问我写的代码哪错了,在编译器上已经显示没错了,可是在板上是有错的,我这是有什么问题,要怎么改正

任务描述
编程找出前1000个素数存放到数组中,然后输入一个整数N,输出第N个素数的值。

输入格式:
输入有多组数据,为若干个空格分隔的整数。

输出格式:
对于输入数据中每个n,输出第n个素数的值,多个输出之间以逗号分隔。

输入样例:
1 2 3 4 5 4 3
输出样例:
2,3,5,7,11,7,5
输入样例:
5 8 9 10 100 200
输出样例:
11,19,23,29,541,1223
输入样例:
996 997 998 999 1000
输出样例:
7879,7883,7901,7907,7919
我写的代码;#include


int main() {
    int a[1000], n, i;
    for (n = 0; n < 1000; n++) {
        a[n] = n;
        scanf("%d", a[n]);
        for (i = 1; i < 1000; i++) {
            if (a[n] % i != 0 && i != 1 && i != a[n]) {
                if (n == 1)
                    printf("%d");
                else
                    printf(" %d");
            }
        }

        return 0;
    }
}

你写的跟题目有啥关系么?1000个素数在哪?scanf("%d",a[n])也是错的啊。