例29:哥德巴赫猜想

觉得满是愧疚的,好长时间没有写了,写的频率也不高,觉得自己太懈怠了,不能太放松啊,最难的其实不是上手写代码,而是克制自己掌控自己,感觉到自己的不对了,要把不好的地方给改掉,我过于懈怠了。

这是今天的第一例,不敢说死还会有,但应该还会有。

这一例我和书上写的应该是不太一样的,并不是代码不一样,因为代码至今应该都不一样,是显示结果不太一样,但是也是对的没有问题的。

总的来说并不是很难,但如果更深究就很难了。

代码如下:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 int pArray[50];
 5
 6 void Test1()
 7 {
 8     pArray[0] = 1;
 9     pArray[1] = 2;
10     for(int i = 3,k = 2;i<100;i++)
11     {
12         int j;
13         for(j = 2;j<i;j++)
14         {
15             if(i%j == 0)
16             {
17                 break;
18             }
19         }
20         if(i == j)
21         {
22             pArray[k++] = i;
23             j = 0;
24             while(j<k)
25             {
26                 if((i+pArray[j] < 100) && ((i+pArray[j]) % 2 == 0))
27                 printf("%d = %d + %d\n",i + pArray[j],pArray[j],i);
28                 j++;
29             }
30         }
31     }
32 }
33 int main()
34 {
35
36     Test1();
37     return 0;
38 }
时间: 2024-12-11 16:52:01

例29:哥德巴赫猜想的相关文章

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

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

P1304 哥德巴赫猜想

题目描述 输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想. (N为偶数). 如果一个数,例如10,则输出第一个加数相比其他解法最小的方案.如10=3+7=5+5,则10=5+5是错误答案. 输入输出格式 输入格式: 第一行N 输出格式: 4=2+2 6=3+3 …… N=x+y 输入输出样例 输入样例#1: 10 输出样例#1: 4=2+2 6=3+3 8=3+5 10=3+7 先筛一边素数,然后暴力枚举就好 1 #include<iostream> 2 #inclu

素数分组 哥德巴赫猜想

题目描述 最少把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全部加起来,那么

哥德巴赫猜想(升级版)

题目背景 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3.需要特别说明的是1不是质数. 这就是哥德巴赫猜想.欧拉在回信中说,他相信这个猜想是正确的,但他不能证明. 从此,这道数学难题引起了几乎所有数学家的注意.哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的"明珠". 题目描述 现在请你编一个程序验证哥

验证哥德巴赫猜想,每个大于等于4的偶数都可以表示成2个素数之和

验证哥德巴赫猜想,每个大于等于4的偶数都可以表示成2个素数之和. 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 int isou(int num)//1代表偶数,0代表奇数 7 { 8 if (num % 2 == 0) 9 { 10 return 1; 11 } 12 else 13 { 14 return 0; 15 } 16 } 17 18 int sushu(

Goldbach&#39;s Conjecture(哥德巴赫猜想)

Goldbach's Conjecture Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5277    Accepted Submission(s): 2022点我 Problem Description Goldbach's Conjecture: For any even number n greater than or equa

c语言验证哥德巴赫猜想(从4开始 一个偶数由两个质数之和)

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int isit(int num) 6 { 7 int i; 8 int flag = 1;//表述为素数 9 if(num==2) 10 { 11 return 1; 12 }else if(num==3) 13 { 14 return 1; 15 }else if(num<=1) 16 { 17 return 0; 18 }el

URAL 1356. Something Easier(哥德巴赫猜想)

题目链接 题意 : 给你一个数n,让你找出几个素数,使其相加为n,输出这些素数. 思路 : 哥德巴赫猜想 : 任何一个大于 6的偶数都可以表示成两个素数之和. 任何一个大于9的奇数都可以表示成三个素数之和. 而在该题中,偶数中2本身就是个素数,奇数中小于9的都是素数,所以只要写一个判断素数的函数即可,这样不在范围内的数就可以直接判断输出了. 任何一个整数N(N>=2)最多由三个素数相加构成.要分情况考虑: 1. 如果N为偶数,1)如果N==2,直接输出: 2)如果N>2,那么N一定可以写成两个

uva 10168 哥德巴赫猜想

https://vjudge.net/problem/UVA-10168 给出一个整数n,问是否能将它化为四个素数相加的形式,如果可以的话就输出这四个数.显然n<8时是不可能的.对于大于等于8得数,如果是个奇数,可以将其-2-3形成一个偶数,同理将偶数-2-2形成另一个偶数.哥德巴赫猜想是对于任意大于等于6的偶数都能分解为两个奇素数的和,正好将这个偶数再次分为两个素数加上前面的两个凑成四个. ps.难道数据很弱么1000w的范围竟然30ms就跑完了欸 1 #include<iostream&g

哥德巴赫猜想验证

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