c语言,程序设计,第一个素数是2,第二个素数是3,第三个素数是5,请你计算第2019个素数是多少?

如题所述

#include <stdio.h>
#include <conio.h>

/* 试除法判断素数 */
/* 大于1的自然数num,若其不能被2~num^1/2(num的平方根)之间的任一自然数整除,则其为素数 */
/* num是素数返回1,否则返回0 */
int isPrime (int num) {
int i;
if (num <= 1) /* 素数必须是大于1的自然数 */
return 0;
if (num%2==0 && num!=2) /* 除2之外的偶数显然不是素数 */
return 0;
for (i=2; i*i<=num; i++)
if (num%i == 0)
return 0;
return 1;
}

int main (void) {
int primeNum, prinmeCnt = 0;
int i, j;

i = 0;
while (prinmeCnt != 2019) {
if (isPrime (i)) {
primeNum = i;
prinmeCnt ++;
}
i++; 
}

printf ("第2019个素数为:%d\n", primeNum);

getch (); /* 屏幕暂留 */
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-31
#include<stdio.h>

#include<math.h>
bool PrimeNum(int x){
if(x<2)
return false;
int k;
int i;
k=sqrt(double(x));
for(i=2;i<=k;i++){
if(x%i==0)
return false;
}
return true;
}
int main(){
int a=0,b=1;
int c=0;
for(a=1;b<=2019;a++){
if(PrimeNum(a)){
c=a;
b+=1;
}
}
printf("%d",c);
return 1
}