素數

1 求第10002個素數

n 之前大約有 n/ln(n)個素數

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(){
	float a = 100000;
	int b = 100002;
	while(a / log(a) < b)
	{
		a *= 1.1;
	}
	printf("%.2f\n", a);
	int c = 150 * 10000;
	int * d = (int *)malloc(sizeof(int) * c);
	memset(d, 0, sizeof(int) * c);
	for(int i = 2; i < c / 2; i++){
		for(int j = i + 1; j < c / i; j++){
			if(i * j < c){
				d[i * j] = 1;
			}
		}
	}
	int e = 0;
	for(int i = 2; i < c; i++){
		if(d[i] == 0){
			e++;	
		}
		if(e == 10002){
			printf("%d", i);
			break;
		}
	}
	return 0;
}

發佈了17 篇原創文章 · 獲贊 3 · 訪問量 9257
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章