验证哥德巴赫猜想
2010-03-15 20:21
211 查看
编写一个C#控制台应用程序,验证哥德巴赫猜想:任意一个大于任意一个大于6偶数都可分解成两个素数之和。
要求首先打印1~1000之间的偶数的歌德巴赫猜想验证结果,然后让用户输入一个数,判定此数是否是大于6的偶数,如果不是,让用户重新输入,直到满足条件为止。之后验证此输入的数的歌德巴赫猜想,并将结果打印出来)。
运行结果:
....
970=3+967
972=1+971
974=3+971
976=5+971
978=1+977
980=3+977
982=5+977
984=1+983
986=3+983
988=5+983
990=7+983
992=1+991
994=3+991
996=5+991
998=1+997
1000=3+997
请输入一个数
4
您输入的数不大于6,请
5
您输入的数不大于6,请
7
您输入的数不是偶数,请
994
994=3+991
恭喜你计算成功!
要求首先打印1~1000之间的偶数的歌德巴赫猜想验证结果,然后让用户输入一个数,判定此数是否是大于6的偶数,如果不是,让用户重新输入,直到满足条件为止。之后验证此输入的数的歌德巴赫猜想,并将结果打印出来)。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 哥德巴赫猜想 { class Program { /// <summary> /// 输出1~1000之间的偶数 /// </summary> public static void consoleNum(int num) { Console.WriteLine("1~1000之大于6间的偶数有:"); for (int i = 6; i < num; i++) { if (isOuSu(i)) { Console.Write(i.ToString() + ","); } } Console.WriteLine(""); } /// <summary> /// 判断该数是否为素数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static bool isSu(int num) { bool i = true; for (int k = 2; k <= Math.Sqrt(num); k++) { if (num % k == 0) { i= false; } } return i; } /// <summary> /// 判断是否为偶数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static bool isOuSu(int num){ if (num % 2 == 0) { return true; } else return false; } /// <summary> /// 输出素数之和 /// </summary> /// <param name="num"></param> /// <param name="su"></param> /// <param name="su1"></param> public static void consoleSu(int num) { for (int j = 1; j < num; j++) { if (isSu(j) && isSu(num - j)) { Console.WriteLine("{0}={1}+{2}", num, j, num - j); break; } } } /// <summary> /// 判断是否是数字 /// </summary> /// <param name="num"></param> /// <returns></returns> public static bool isNum(string num) { try { Convert.ToInt32(num); return true; } catch { return false; } } public static void Main(string[] args) { consoleNum(1000); for (int i = 6; i < 1001; i++) { if (i % 2 == 0) { consoleSu(i); } } Console.WriteLine("请输入一个数"); string num= Console.ReadLine(); while (true) { if(isNum(num)){ int num1=Convert.ToInt32(num); if (num1 > 6) { if (isOuSu(num1)) { consoleSu(num1); Console.WriteLine("恭喜你计算成功!"); break; } else { Console.WriteLine("您输入的数不是偶数,请重新输入..."); num = Console.ReadLine(); } } else { Console.WriteLine("您输入的数不大于6,请重新输入..."); num = Console.ReadLine(); } }else { Console.WriteLine("您输入的数非数字类型,请重新输入..."); num = Console.ReadLine(); } } Console.ReadLine(); } } }
运行结果:
....
970=3+967
972=1+971
974=3+971
976=5+971
978=1+977
980=3+977
982=5+977
984=1+983
986=3+983
988=5+983
990=7+983
992=1+991
994=3+991
996=5+991
998=1+997
1000=3+997
请输入一个数
4
您输入的数不大于6,请
5
您输入的数不大于6,请
7
您输入的数不是偶数,请
994
994=3+991
恭喜你计算成功!
相关文章推荐
- c++编写函数验证哥德巴赫猜想
- 编程验证哥德巴赫猜想
- 编程验证哥德巴赫猜想
- 6-2 使用函数验证哥德巴赫猜想(20 分)
- java程序验证哥德巴赫猜想
- 58-验证哥德巴赫猜想
- Python验证哥德巴赫猜想
- JS程序验证哥德巴赫猜想
- 求用c语言验证哥德巴赫猜想
- zzuli OJ 1093: 验证哥德巴赫猜想(函数专题)
- 循环-04. 验证“哥德巴赫猜想”(20)
- ZZULIOJ【1093】验证哥德巴赫猜想【函数】
- 验证哥德巴赫猜想
- zzuli OJ 1093: 验证哥德巴赫猜想(函数专题)
- 验证哥德巴赫猜想
- OJ题:验证哥德巴赫猜想(C++)
- Java编程实现验证哥德巴赫猜想
- 循环-04. 验证“哥德巴赫猜想”(20)
- 循环-04. 验证“哥德巴赫猜想”(20)
- 用 Java 验证8-10000内的所有偶数符合哥德巴赫猜想