1013 数素数 (20分).cpp

#include<iostream>
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
bool test[105000];
int N = 105000;
int num;
int P[105000];
//有点像dp一次全部找到!
void isPrime() {
	int i = 2;
	for(; i <= N; i++) {
		if(test[i]==false) {
			P[num++] = i;
			for(int j = i + i; j <= N; j+=i) {
				test[j] = true;
			}
		}
	}
}
//这个是每个进行检查!判断!
int twoPrime() {
	int flag = 1;
	for(int q = 2; q < N; q++) {
		for(int i = 2; i <= (int)sqrt(1.0*q); i++) {
			if(q % i == 0) {
				flag = 0;
			}
		}
		if(flag) {
			P[num++] = q;
		}
		flag = 1;
	}

//
//	for(int i =2; i * i <= N; i++) {
//		if(N%i!=0) {
//			P[num++] = i;
//		}
//	}
	return 0;
}

int main() {
	int M,n;
	scanf("%d %d",&M,&n);
	memset(test,0,sizeof(test));
	memset(P,0,sizeof(P));
	num = 0;
	isPrime();
	int cnt = 0;
	for(int i = M-1; i <= n-1; i++) {
		cnt++;
		if(cnt % 10 != 1)
			printf(" ");
		printf("%d",P[i]);
		if(cnt % 10 == 0) printf("\n");

	}

	return 0;
}

发布了78 篇原创文章 · 获赞 3 · 访问量 6571

猜你喜欢

转载自blog.csdn.net/weixin_38023259/article/details/105028173