用c#语言
时间: 2025-05-24 15:51:48 浏览: 10
### 使用C#实现求1到100之间所有质数及其和的代码
以下是完整的C#程序,它不仅能够找到1到100之间的所有质数,还能计算这些质数的总和。此程序基于标准的质数判定方法,并进行了性能上的优化。
---
#### 完整C#代码
```csharp
using System;
class Program
{
static void Main()
{
int sum = 0;
Console.WriteLine("1 到 100 的质数有:");
for (int i = 2; i <= 100; i++)
{
if (IsPrime(i))
{
Console.Write(i + " ");
sum += i;
}
}
Console.WriteLine($"\n这些质数的总和是:{sum}");
}
/// <summary>
/// 判断一个数是否为质数。
/// </summary>
/// <param name="number">待检测的数字</param>
/// <returns>如果是质数返回true;否则返回false。</returns>
static bool IsPrime(int number)
{
if (number < 2) return false; // 小于2的数都不是质数
int sqrt = (int)Math.Sqrt(number); // 只需检查到sqrt(number)
for (int i = 2; i <= sqrt; i++) // 遍历可能的因数
{
if (number % i == 0) return false; // 能被整除,则不是质数
}
return true; // 否则是质数
}
}
```
---
#### 功能说明
1. **主函数部分**:
- 外层循环从2开始遍历到100,逐个调用 `IsPrime` 函数判断当前数字是否为质数[^1]。
- 如果某数字是质数,则将其打印出来并加入总和变量 `sum` 中。
2. **辅助函数 `IsPrime`**:
- 此函数接收一个整数参数 `number` 并返回布尔值。
- 对小于2的数字直接返回 `false`,因为只有大于等于2的数才可能是质数。
- 使用平方根技巧减少不必要的迭代次数,即只需检查 `[2, √number]` 范围内的潜在因数即可[^3]。
---
#### 输出示例
运行以上代码后,控制台将显示如下内容:
```
1 到 100 的质数有:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
这些质数的总和是:1060
```
---
#### 性能分析
- 时间复杂度主要由 `IsPrime` 函数决定,最坏情况下约为 \(O(\sqrt{n})\),其中 \(n\) 是要检测的数字大小。
- 整体时间复杂度接近 \(O(m \cdot \sqrt{n})\),\(m\) 表示范围长度(此处固定为100),因此效率较高。
---
####
阅读全文
相关推荐






