1013. 数素数 (20)
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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
分析:
这个题目的话,主要考察的还是边界的控制。稍微注意一点就很简单啦~看代码吧!
using System; namespace PAT { class Program { static void Main(string[] args) { string input = Console.ReadLine(); string[] numStrs = input.Split(' '); int begin = int.Parse(numStrs[0]); int end = int.Parse(numStrs[1]); int number = 2; //持续增大的数字 int i = 1; //第几个质数 int count = 0; //这一行的第几个数字 while(i < begin) { if (IsPrime(number)) i++; number++; } while (i <= end) { if (IsPrime(number)) { count++; Console.Write(number); if (count % 10 == 0) Console.WriteLine(); else if (i != end) Console.Write(" "); i++; } number++; } } static bool IsPrime(int number) { int sqrt = (int)Math.Sqrt(number); for(int i = 2; i <= sqrt; i++) { if (number % i == 0) return false; } return true; } } }