请问前n个质数模上50000的算法代码如何理解呢?

img

#include<stdio.h>
int main(){
    int n,i,j=2,x,k=1;
    scanf("%d",&n);
    while(n){
        x=0;
        for(i=2;i<j;i++){
            if(j%i==0){
                x=1;
                break;
            }
        }
        if(x==0){
            k=(k*j)%50000; 
            n--;//n-1 
        }
        j++;
    }
    printf("%d",k); 
    return 0;
} 

因为乘积可能会很大,为了确保整数类型能够存储结果,所以求余50000