PTA 乙级1013 数素数 (20 分)

1013 数素数 (20 分)
令 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
思路:主要考察素数的判断方法;

#include
#include
int myfunction(int key);
int main()
{
int m,n;
int t=0;
int t1=0;
int flag=0;
scanf("%d %d",&m,&n);
 long int i=0,j=0;
for(i=2;m<=n;i++)
{
	
   if(myfunction(i)==1)
   {
   	flag=1;
   }
   else flag=0;
	
	if(flag==0)
	{
	t++;
	
	if(t==m)
	{
		t1++; 
	   if((t1)%10!=0&&m!=n)	printf("%ld ",i);
	   else if((t1)%10!=0&&m==n)	printf("%ld",i);
	   else printf("%ld\n",i);
		m++;
		}	
	}
	flag=0;
}
	return 0;
 } 
int myfunction(int key)//判断传入的数是否为素数;
 {
 	int flag1=0;
   for(int i=2;i<=sqrt(key);i++)
   {
   	if(key%i==0)
   	{
   		return 1;
	   }
   }
   return  0;
 }

你可能感兴趣的:(PAT,乙级习题)