PAT_B_1013 数素数

题目描述:

令 P​i​​  表示第 i 个素数。现任给两个正整数 M≤N≤10^​4​​ ,请输出 P​M​​  到 P​N​​  的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 P​M​​  到 P​N​​  的所有素数,每 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

本人AC代码:

//  输出第 M 到 第 N 个 素数

# include <stdio.h>
# include <math.h>

int Is_Prime(int);

int main(void)
{
	int i;
	int N1, N2;
	int n = 105000; 
	int flag = 0;
	int flag_ch = 0;
	
	scanf("%d %d",&N1,&N2);
	
	for (i=1; i<n; i++)	
	{
		if (Is_Prime(i))
		{
			flag++;
			if (flag>N1 && flag<=N2+1)
			{
				flag_ch++;
				printf("%d",i);
				if (flag_ch<10 && flag!=N2+1)
				{
					printf(" ");
				}
				else
				{
					printf("\n");
					flag_ch -= 10;
				}
			}
					
		}
			
	}
	return 0;
}

int Is_Prime(int n)
{
	int i = 1;
	int temp = sqrt(n);
	
	for (i=2; i<=temp; i++)	
	{
		if (n%i == 0)
			return 0;
	}
	return 1;
}

RRR

猜你喜欢

转载自www.cnblogs.com/Robin5/p/11243621.html