c#编写一个程序,输入整数n,显示n以内所有素数,如果n输入为负数,提示输入错误,直到输入正确为止
时间: 2024-03-25 15:37:42 浏览: 93
好的,以下是C#编写的程序,可以实现你的需求:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int n;
while (true)
{
Console.Write("请输入一个正整数n:");
if (int.TryParse(Console.ReadLine(), out n))
{
if (n >= 0)
{
break;
}
}
Console.WriteLine("输入错误,请重新输入!");
}
Console.WriteLine($"0~{n}内的所有素数为:");
for (int i = 2; i <= n; i++)
{
bool isPrime = true;
for (int j = 2; j <= Math.Sqrt(i); j++)
{
if (i % j == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
Console.Write($"{i} ");
}
}
}
}
```
程序的具体思路如下:
1. 首先通过`while`循环实现输入正整数n的功能,当用户输入负数或非整数时,程序会提示用户重新输入。
2. 然后通过`for`循环遍历从2到n之间的所有整数,判断每个数是否为素数。
3. 判断素数的方法是,对于每个数i,从2到`Math.Sqrt(i)`进行遍历,如果i能被其中任意一个数整除,则i不是素数。
4. 如果i是素数,则输出i。
注意,为了判断一个数是否为素数,我们只需要遍历到它的平方根即可,这可以减少程序的运行时间。
阅读全文