题目:
输入一个自然数 判断是否是素数,是素数则提示是素数,否则找出比它大的第一个素数
代码:
1 Console.WriteLine("请输入任意一个自然数。"); 2 string number = Console.ReadLine(); 3 if (string.IsNullOrEmpty(number)) 4 { 5 Console.WriteLine("请输入数据。"); 6 } 7 else 8 { 9 Regex rx = new Regex("^[0-9]*$"); 10 if (rx.IsMatch(number)) 11 { 12 int inputNum= Convert.ToInt32(number); 13 bool isTreue = true; 14 for (int i = inputNum - 1; i > 1; i--) 15 { 16 if (inputNum % i == 0) 17 { 18 Console.WriteLine("你输入{0}的数不是素数", inputNum); 19 isTreue = false; 20 int res = GetNumber(inputNum); 21 Console.WriteLine("比它大的第一个素数是{0}", res); 22 break; 23 } 24 } 25 if (isTreue) 26 { 27 Console.WriteLine("你输入{0}的是素数", inputNum); 28 } 29 30 31 } 32 else 33 { 34 Console.WriteLine("请输入数字。"); 35 36 } 37 38 }
查找下一个最大的素数函数
private static int GetNumber(int beginNum) { beginNum++; for (int i = beginNum - 1; i > 1; i--) { if (beginNum % i == 0) { return GetNumber(beginNum); } } return beginNum; }