1224 哥德巴赫猜想(2)
1224 哥德巴赫猜想(2)
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)
Submits : 1564 | Solved : 629
Description
所謂哥德巴赫猜想,就是指任何一個大於2的偶數,都可以寫成兩個素數的和。現在輸入一個偶數,要求尋找兩個素數,使其和等於該偶數。由於可能有多組素數對滿足條件,所以本題要求輸出兩數差最小的那兩個素數。
Input
輸入一個偶整數M,M大於2。
Output
對於每個偶數,輸出兩個彼此最接近的素數,並且其和等於該偶數。(輸出時兩個素數小的在前,大的在後)。
Sample Input
20
Sample Output
7 13
HINT
Source
NBU OJ
解題思路:最開始用的素數篩選法沒過...。
AC程式碼:
import java.util.Scanner; public class Main { private static Scanner sc; public static void main(String[] args){ int m,x=1,y=1; sc = new Scanner(System.in); int[] a=new int[1000]; m=sc.nextInt(); if(m==4){ System.out.println(2+" "+2); } else{ int min=0,max=0; for(int i=m/2;i>=0;i--){ max=m-i; min=i; if(min%2!=0&&max%2!=0&&i>1){ x=0;y=0; for(int j=2;j<=(int)Math.sqrt(max);j++){ if(max%j==0) x=1; } for(int j=2;j<=(int)Math.sqrt(min);j++){ if(min%j==0) y=1; } if(x==y&&x==0){ System.out.println(min+" "+max); break; } } } } } }
相關推薦
1224 哥德巴赫猜想(2)
1224 哥德巴赫猜想(2) Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others) Submits : 1564 | Solved : 629 D
驗證哥德巴赫猜想(C++)
哥德巴赫猜想: 1)任一不小於6的偶數,都可以表示成兩個奇質數之和 2)任一不小於9的奇數,都可以表示成三個奇質數之和 尤拉也提出另一個等價版本,即任一大於2的偶數都可寫成兩個質數之和。尤拉的命題比哥德巴赫的命題要求更高。現通常把這兩個命題統稱為哥德巴赫猜想。 演算法: 將6~n
6-2 使用函式驗證哥德巴赫猜想 (20 point(s))
6-2 使用函式驗證哥德巴赫猜想 (20 point(s)) 本題要求實現一個判斷素數的簡單函式,並利用該函式驗證哥德巴赫猜想:任何一個不小於6的偶數均可表示為兩個奇素數之和。素數就是隻能被1和自身整除的正整數。注意:1不是素數,2是素數。 函式介面定義: int prime( int
Codeforces Round #324 (Div. 2) (B排列組合)(C貪心)(D哥德巴赫猜想 數論+暴力)
題意:。。。。 思路:剛開始還想用什麼字串模擬或者大數什麼的,後來想了想差點笑出聲來,樣例就是用來忽悠人的。。。 #include <bits/stdc++.h> #define ll
6-2 使用函式驗證哥德巴赫猜想(20 分)
本題要求實現一個判斷素數的簡單函式,並利用該函式驗證哥德巴赫猜想:任何一個不小於6的偶數均可表示為兩個奇素數之和。素數就是隻能被1和自身整除的正整數。注意:1不是素數,2是素數。函式介面定義:int prime( int p ); void Goldbach( int n ); 其中函式prime當用戶傳入引
洛谷——P1579 哥德巴赫猜想(升級版)
驗證 一個空格 i++ -s define while char pac algorithm P1579 哥德巴赫猜想(升級版) 題目背景 1742年6月7日哥德巴赫寫信給當時的大數學家歐拉,正式提出了以下的猜想:任何一個大於9的奇數都可以表示成3個質數之和。質數是指除
洛谷 P1579 哥德巴赫猜想(升級版)
== bar spa class badge bsp span lba -c P1579 哥德巴赫猜想(升級版) 題目背景 1742年6月7日哥德巴赫寫信給當時的大數學家歐拉,正式提出了以下的猜想:任何一個大於9的奇數都可以表示成3個質數
ACM_哥德巴赫猜想(素數篩)
ont other turn desc 簡單 rim 全部 == pan 哥德巴赫猜想 Time Limit: 2000/1000ms (Java/Others) Problem Description: 哥德巴赫猜想大概是這麽一回事:“偶數(>=4) ==
P1579 哥德巴赫猜想(升級版) <洛谷> (C++)(篩法選素數)
時間 turn std str ems main math mem num 兩層循環找到其中兩個值,最後一個值由輸入的num減去他們的和可得到,若都是質數則可以輸出 篩法選素數可稍微優化判斷素數的時間 代碼如下 #include<stdio.h> #inclu
P1579 哥德巴赫猜想(升級版)----打表法
P1579 哥德巴赫猜想(升級版) 題目背景 1742年6月7日哥德巴赫寫信給當時的大數學家尤拉,正式提出了以下的猜想:任何一個大於9的奇數都可以表示成3個質數之和。質數是指除了1和本身之外沒有其他約數的數,如2和11都是質數,而6不是質數,因為6除了約數1和6之外還有約數2和3。需要特
6-3 使用函式驗證哥德巴赫猜想 (10 分)c語言解答(附上我覺得注意點)
6-3 使用函式驗證哥德巴赫猜想 (10 分) 本題要求實現一個判斷素數的簡單函式,並利用該函式驗證哥德巴赫猜想:任何一個不小於6的偶數均可表示為兩個奇素數之和。素數就是隻能被1和自身整除的正整數。注意:1不是素數,2是素數。 函式介面定義: int prime( int p ); vo
搜尋題 P1579 哥德巴赫猜想(升級版) 洛谷 簡單
題目背景 1742年6月7日哥德巴赫寫信給當時的大數學家尤拉,正式提出了以下的猜想:任何一個大於9的奇數都可以表示成3個質數之和。質數是指除了1和本身之外沒有其他約數的數,如2和11都是質數,而6不是質數,因為6除了約數1和6之外還有約數2和3。需要特別說明的是1不是質數。 這就是哥德巴
PTA 7-3 驗證“哥德巴赫猜想”(20 分)判斷素數標準方法
數學領域著名的“哥德巴赫猜想”的大致意思是:任何一個大於2的偶數總能表示為兩個素數之和。比如:24=5+19,其中5和19都是素數。本實驗的任務是設計一個程式,驗證20億以內的偶數都可以分解成兩個素數之和。輸入格式:輸入在一行中給出一個(2, 2 000 000 000]範圍內的偶數N。輸出格式:在一行中按照
7-6 驗證“哥德巴赫猜想”(20 分)
一、題目 二、個人理解 此題本質上就是考素數判斷。 思想很簡單,但是最大數會執行超時。這裡介紹一種簡單的素數,即只對奇數進行判斷,並對數進行一次開方。 在此我希望大家即使不掌握高深的素數判
驗證“哥德巴赫猜想”(20 分)
7-111 驗證“哥德巴赫猜想”(20 分)數學領域著名的“哥德巴赫猜想”的大致意思是:任何一個大於2的偶數總能表示為兩個素數之和。比如:24=5+19,其中5和19都是素數。本實驗的任務是設計一個程式
習題6-5 使用函式驗證哥德巴赫猜想 (20 分)
本題要求實現一個判斷素數的簡單函式,並利用該函式驗證哥德巴赫猜想:任何一個不小於6的偶數均可表示為兩個奇素數之和。素數就是隻能被1和自身整除的正整數。注意:1不是素數,2是素數。 函式介面定義: int prime( int p ); void Goldbach( int n ); 其中
哥德巴赫猜想(驗證2000以內的正偶數能夠分解成兩個素數之和)
哥德巴赫猜想: 任何一個大於6的偶數都可以表示成兩個素數之和,任何一個大於9的奇數都可以表示成三個素數之和。 試驗證2000以內的正偶數能夠分解成兩個素數之和: #include
驗證哥德巴赫猜想(for迴圈及其優化)
1.問題描述:任何一個大於6的偶數,都能分解成兩個質數的和。要求輸入一個整數,輸出這個整數能被分解成哪兩個質數的和。 2.思路分析:可以使用窮舉法,即使用for迴圈列出所有可能的情況再使用if條件判斷濾去不符合條件的組合。注意先要對使用者輸入的數進行合法判斷
15OJ題——驗證哥德巴赫猜想(素數問題)
/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作 者:李曉凱 * 完成日期:2
Codeforces Round #382 (Div. 2) -- D. Taxes (數學 -- 哥德巴赫猜想, 唯一分解定理)
Mr. Funt now lives in a country with a very specific tax laws. The total income of mr. Funt during this year is equal to n (n ≥ 2) burles and the amount