C# 递归求任意两数之间的素数
2015-03-05 16:57
176 查看
之前遇到的一个题目,我把它写的灵活了一点,写了两种实现方法,方法一:是试题给的提示来写的,方法二:是按百度百科中对“素数”的理解来写的,用的都是递归。
试题:
判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
{
int count = 0;
for (int i = 1; i <= x; i++)
{
if (x % i == 0)
{
count++;
}
if (count > 2)
return GetSuShu(x + 1, y, sushu);
}
if (x < y)
{
return GetSuShu(x + 1, y, sushu += x + "、");
}
else
{
return sushu;
}
}
试题:
判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
public static void Main(string[] args) { Test3(); } public static void Test3() { Console.WriteLine("请输入求素数的起始数字用','隔开:"); string y = Console.ReadLine(); Console.WriteLine("这个范围内的素数有:{0}", GetSuShu(int.Parse(y.Split(',')[0]), int.Parse(y.Split(',')[1]), "")); } //方法一 public static string GetSuShu(int x, int y, string sushu) { bool check = true;//是素数 for (int i = 2; i < x; i++) { if (x % i == 0) { check = false; } } if (check == true && x < y) { return GetSuShu(x + 1, y, sushu += x + "、"); } else if (check == false && x < y) { return GetSuShu(x + 1, y, sushu); } else { return sushu; } } <pre name="code" class="csharp"> <pre name="code" class="csharp"> //方法二public static string GetSuShu2(int x, int y, string sushu)
{
int count = 0;
for (int i = 1; i <= x; i++)
{
if (x % i == 0)
{
count++;
}
if (count > 2)
return GetSuShu(x + 1, y, sushu);
}
if (x < y)
{
return GetSuShu(x + 1, y, sushu += x + "、");
}
else
{
return sushu;
}
}
相关文章推荐
- Python练习笔记——采用生成器函数实现两数之间的素数计算
- 输出任意两数之间的素数
- c# 计算1-100之间的所有质数(素数)的和
- 关于asp.net(C#)与C#.net之间的区别
- C#与SQL Server之间的数据类型对比及在VS2003中空值传递的解决办法(上)
- C#中的const和readonly之间的不同(转)
- 实现C#和VB.net之间的相互转换(马辉)
- C#与SQL Server之间的数据类型对比及在VS2003中空值传递的解决办法
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- C#中父窗口和子窗口之间实现控件互操作
- 整理,C#中二进制,八进制,十六进制 和 十进制之间的互相转换
- C#算法设计与分析-寻找素数
- C#主窗体和子窗体之间如何相互操作对方的控件
- c++ 和c#之间的区别
- C#中父窗口和子窗口之间实现控件互操作
- C#求素数
- C++ 和 C# 之间的比较
- (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- C#与SQL Server之间的数据类型对比及在VS2005中空值传递的解决办法
- C#中父窗口和子窗口之间实现控件互操作