C语言输出第N个素数

img


这个关于第N个素数问题我确实不知道咋写,好烦恼应该怎么写呢?有人知道嘛?


#include<stdio.h>
#include<math.h>
int main()
{
    int arr[1000]={0};
    int i=0;
    int num=2;
    for(i=0;i<1000;i++,num++)
    {
        int j=0;
        for(j=2;j<=sqrt(num);j++)
        {
            if(num%j==0)
            {
                break;
            }
        }
        if(j>sqrt(num))
        {
            arr[i]=num;
        }
        else
        {
            i--;
        }
    }
    int n=0;
    while(scanf("%d",&n)==1)
    {
        char ch=getchar();
            printf("%d",arr[n-1]);
            if(ch!='\n')
            {
              printf(",");
            }
            else
            {
                printf("\n");
            }
    }


    return 0;
}

主要功能已经帮你写好了,可以实现单个查询第N个素数


#include <stdio.h>
#include <math.h>
int prime( int p );
int main()
{
    int a[1000];
    int count=0;
    int i=2,N;
    while(count<=999)
    {
       if(prime(i))
        {    
            a[count++]=i;
        }
            i++;
    }
      
    scanf("%d",&N);
    printf("%d",a[N-1]);
    return 0;
}
int prime( int p )    //判断素数
{
    int i,flag=1; 
    if(p<=1) 
        return 0;
    if(p==2) 
        return 1;
    for(i=2;i<p;i++)
    { 
        if(p%i==0)
        {
            flag=0;
            break;
        }
    }
    return flag;
}