PAT乙级刷题之路1013 数素数 (20分)

你。 提交于 2020-01-26 00:21:13

1013 数素数 (20分)
令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 P​M到 PN的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 PM 到 PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

#include <stdio.h>
#include <math.h>
#define MAXNUM 10000
int Isprime(int n)
{
	int i,isprime=1;
	for(i=(int)sqrt(n);i>=2;i--){
		if(n%i==0){
			isprime=0;
		}
	}
	return isprime;
}
int main()
{
	int N,M;
	scanf("%d %d",&M,&N);
	int A[N+1],cnt=3,i;//A数组记录素数
	A[1]=2;
	A[2]=3;
	for(i=3;i<=N;i++){
		A[i]=0;
	}
	for(i=4;cnt<=N;i++){
		if(Isprime(i)){
			A[cnt]=i;
			cnt++;
		}
	}
	for(i=M;i<=N;i++){
		if((i-M)%10==9){
			printf("%d\n",A[i]);
		}else if(i==N){
			printf("%d",A[i]);
		}else{
			printf("%d ",A[i]);
		}		
	}
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!