哥德巴赫猜想的代码实现和分析

什么是哥德巴赫猜想?

  斐波拉契数列是指任何一个大于2的偶数,都可以被分解成两个质数相加。

哥德巴赫猜想实现代码的分析。

  用户输入一个大于二的偶数,分解成两个质数相加。要想实现这个功能,我们可以分成三个模块去书写代码:

      1.提示并获取用户输入数,保存到变量 number中。

      2.分解number,找到两个质数,和等于number ,分别保存在i和j中。

      3.输出结果。

  这样的话,我们只需要实现每个模块的功能,整个代码就能编写完成。

代码的编写

 //提示并获取用户输入数,保存到变量 number中
            int number;
            while (true)
            {
                Console.Write( "输入一个大于2的偶数:");
                number = int.Parse(Console.ReadLine());

                if (number <= 2 || number % 2 != 0)
                {
                    Console.WriteLine("输入有误,请按回车键后重新输入");
                    Console.ReadLine();
                    Console.Clear();
                }
                else {
                    break;
                }
            }

  // 分解number,找到两个质数,和等于number ,分别保存在i和j中
            int i, j = 0;
            for (i = 2; i < number - 1; i++)
            {
                j = number - i;
                bool isFind = false;
                for (int k = 2; k < i; k++)
                {
                    if (i % k == 0)
                    {
                        break;
                    }
                }
                if (isFind)
                {
                    //i不是质数
                    continue;
                }
                //判断j是不是质数
                isFind = false;
                for (int k = 2; k < j; k++)
                {
                    if (j % k == 0)
                    {
                        break;
                    }
                }
                if (!isFind)
                {
                    //j是质数
                    break;
                }

            }

//输出结果
            String result = number + "=" + i + "+" + j;
            Console.WriteLine(result);
            Console.ReadLine();
时间: 2024-08-29 23:36:16

哥德巴赫猜想的代码实现和分析的相关文章

那位大佬看看这个 哥德巴赫猜想代码哪不对,运行不起来

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { //哥德巴赫猜想 : 任何一个大于2的偶数,都可以被分解为两个质数相同 #region 提示并获取用户输入的偶数,保存到变量number中 int number; whil

哥德巴赫猜想验证

1.问题描述 大于等于6以上的偶数总有 = 2个质数之和: 例:12 = 3 + 9 X 12 = 5 + 7 V (哥德巴赫猜想成立): 基本分析 2.基础算法代码实现 #include<stdio.h> typedef unsigned char boolean; #define TRUE    1 #define    FALSE    0 boolean isPrime(int n); boolean Gguess(int userNumber); boolean Gguess(int

洛谷 P1579 哥德巴赫猜想(升级版)【筛素数/技巧性枚举/易错】

[链接]:https://www.luogu.org/problemnew/show/P1579 题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3.需要特别说明的是1不是质数. 这就是哥德巴赫猜想.欧拉在回信中说,他相信这个猜想是正确的,但他不能证明. 从此,这道数学难题引起了几乎所有数学家的注意.哥德

循环-04. 验证“哥德巴赫猜想”

循环-04. 验证“哥德巴赫猜想”(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和.比如:24=5+19,其中5和19都是素数.本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和. 输入格式: 输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N. 输出格式: 在一行中按照格式

uva 10168 Summation of Four Primes(数论-哥德巴赫猜想)

Problem A Summation of Four Primes Input: standard input Output: standard output Time Limit: 4 seconds Euler proved in one of his classic theorems that prime numbers are infinite in number. But can every number be expressed as a summation of four pos

CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想

http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的整数相加,每个数最小只能拆成2, 单独计算每个数的贡献,然后加起来使他的贡献最小..那么我们肯定是拆成质数最赚 因为质数对答案的贡献是1... 所以现在这个问题变成了把一个数拆成最少个数的质数 那么我们不知道最少能拆成多少个质数啊..我一开始想的是你每次找最接近这个数的质数..一直找下去应该是可以的

哥德巴赫猜想证明

public class Guess { public static boolean isPrime(int i) { // 推断參数i是否是素数,是则返回true反之则返回false int n; boolean flag = true; if (1 == i) // 1本身不是素数,因此需把这个特殊的数字抛出 flag = false; for (n = 2; n <= i - 1; n++) /* 推断i是否是素数的一个方法是看2-i-1之间有其因子(能被2整除),有则不是素数返回fals

【JS 设计模式 】用组合模式来实现树形导航--代码结构思路分析(一)

树导航效果图: 组合模式的描述: 将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. 我们把部分用Leaf表示, 把整体用Composite表示.组合模式是有一定规律的,在实现树导航的情况下,Composite需要包含一个以上Leaf,也可以包含一个以上Leaf和一个以Composite,为什么说要包含一个以上的,如果Composite不包含任何子child的话那么它就是Leaf,Leaf表示是最后一层结节. 树形导航代码片段:

素数分组 哥德巴赫猜想

题目描述 最少把1~n 分成多少组,可以使得每组的数的和为素数 输入 有多组数据第一行是一个数T,表示数据组数每组数据共1 行,为正整数n 输出 有T 行,每行为该情况的最少组数,无法分组时,输出-1 样例输入 1 2 样例输出 1 哥德巴赫猜想裸题 首先如果sum(n)是偶数,即两个素数之和,writeln(2) 如果sum(n)是奇数,那么分类讨论,如果sum(n)是质数,1即可 如果不是素数 check(sum(n)-2),如果是素数,就是3了 关于证明: 我们首先把1~n全部加起来,那么