PAT乙级 —— 1003 数素数 (20)

  • 题目链接:数素数 (20)

  • 题目描述

    令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到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 <iostream>
    #include <stdio.h>
    #include <cmath>
    #include <vector>
    using namespace std;
    
    bool isprime(int n) 
    {
          
          
    	if(n<=1) 
    		return false;
     	int sqr = int(sqrt(n*1.0));
     	for (int i=2;i<=sqr;i++)
     		if(n%i == 0) 
    		 	return false;
     
     	return true; 
    } 
    
    int main()
    {
          
          
    	int f,l;	//first,last
    	cin>>f>>l;
    	
    	int cnt = 0;
    	int t = 1;
    	while(cnt<l)
    	{
          
          
    		if(isprime(t))
    		{
          
          
    			cnt++;
    			if(cnt>=f)	
    			{
          
          
    				cout<<t;
    				if(cnt-f!=0 && (cnt-f+1)%10==0)
    					cout<<endl;
    				else if(cnt<l)
    					cout<<" ";
    			}	
    		}
    
    		t++;
    	}
    	
    	return 0;
    }
    
  • 说明:

    • 这个素数判断算法可以记一下,从2到sqrt(N)遍历
    • 注意一下输出格式

猜你喜欢

转载自blog.csdn.net/wxc971231/article/details/108348790
今日推荐