素数与哥德巴赫猜想

<pre name="code" class="java">package xuan.demo;
/**
 * @author xuan 素数
 */
public class 素数 {
	public static void main(String[] args) {
//		printNums(1000);//传入打印范围
//		System.out.println(whether(997));//传入判断数字
		printResult(8);
	}
	/**
	 * 打印素数
	 */
	public static void printNums(int count) {
		int i = 2, j;
		for (; i < count; i++) {
			for (j = 2; j < i; j++) {
				if (i % j == 0) {
					break;
				}
			}
			if (i == j) {
				System.out.print(i + "	");
			}
		}
	}

	/**
	 * 判断是否为素数
	 */
	public static boolean whether(int num) {
		int j;//此变量保存2到判断数字的枚举
		boolean isok = false;
		for (j = 2; j < num; j++) {
			//num不能整除j进入下次循环
			if (num % j == 0) {
				break;
			}
		}
		if (num == j) {
			isok = true;
		}
		return isok;
	}
	/**
	 * 哥德巴赫猜想:分解
	 */
	public static void printResult(int num){
		boolean isok = true;
		if (num%2==0) {
			int number = 0;
			for (int i = 0; i < num; i++) {
				for (int j = 0; j < num; j++) {
					number=i+j;
					if (number==num) {
						if (whether(i)&&whether(j)) {//如果两个都是素数
							isok = false;
							System.out.println("素数和:"+num+"="+i+"+"+j);
						}else{
							System.out.println("非素数和:"+num+"="+i+"+"+j);
						}
					}
				}
			}
			if (isok) {
				System.out.println("恭喜你,凌驾于爱因斯坦,霍金等朱多牛逼人士之上,快去美国领100万美元吧!");
			}else{
				System.out.println("亲,您未能成功挑战哥德巴赫猜想~~~~~~");
			}
		}else{
			System.out.println("输入的为奇数!");
		}
	}
}
				
时间: 2024-10-18 11:22:06

素数与哥德巴赫猜想的相关文章

素数分组 哥德巴赫猜想

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

cf584DDima and Lisa(素数性质,三素数,哥德巴赫猜想)

题目链接 Dima loves representing an odd number as the sum of multiple primes, and Lisa loves it when there are at most three primes. Help them to represent the given number as the sum of at most than three primes. More formally, you are given an odd nume

验证哥德巴赫猜想,每个大于等于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(

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

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

哥德巴赫猜想: 任何一个大于2的偶数都可以拆分为两个素数的和

打印出小于2000的偶数拆分情况: var goldbach = function (n){ for(var i = 2;i<n; i++){ if(isPrime(i) && isPrime(n-i)){return {n1:i,n2:(n-i)} ;} } return undefined; } var isPrime = function (n){ for(var i = 2; i< n; i++){if(n%i == 0){return false;}} return

40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和

//1.输入一个偶数.判断是否为偶数 //2.若是,求出小于其的所有素数 //3.将它们求和 //4.验证是否满足哥德巴赫猜想 #include<iostream> #include<cmath> using namespace std; int Sushu(int); int main() { int n,k,q; int a[1000]; begin: cout<<"please input an even number(偶数):"<<

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

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

Goldbach`s Conjecture LightOJ - 1259 (素数打表 哥德巴赫猜想)

题意: 就是哥德巴赫猜想...任意一个偶数 都可以分解成两个(就是一对啦)质数的加和 输入一个偶数求有几对.. 解析: 首先! 素数打表..因为 质数 + 质数 = 偶数 所以 偶数 - 质数 = 质数 ... 我真是蠢啊 还有  vis要用bool类型的!!!!  int会直接爆 代码如下: #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #includ

ACM_哥德巴赫猜想(素数筛)

哥德巴赫猜想 Time Limit: 2000/1000ms (Java/Others) Problem Description: 哥德巴赫猜想大概是这么一回事:"偶数(>=4) == 两个质数的和",至于是不是.成不成立,随它吧. Input: 多组数据,每组一个偶数n(4<=n<=10^6) Output: 若能分解则输出这两个质数,若有多解则按小数优先规则输出全部解,若无解则输出"No"; Sample Input: 16 Sample Ou