1224 哥德巴赫猜想(2)
生活随笔
收集整理的這篇文章主要介紹了
1224 哥德巴赫猜想(2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1224?哥德巴赫猜想(2)
Time Limit :?2000/1000 MS(Java/Others)?| Memory Limit :65536/32768 KB(Java/Others)
Submits :?1564?| Solved :?629
Description
所謂哥德巴赫猜想,就是指任何一個(gè)大于2的偶數(shù),都可以寫成兩個(gè)素?cái)?shù)的和。現(xiàn)在輸入一個(gè)偶數(shù),要求尋找兩個(gè)素?cái)?shù),使其和等于該偶數(shù)。由于可能有多組素?cái)?shù)對(duì)滿足條件,所以本題要求輸出兩數(shù)差最小的那兩個(gè)素?cái)?shù)。
Input
輸入一個(gè)偶整數(shù)M,M大于2。Output
對(duì)于每個(gè)偶數(shù),輸出兩個(gè)彼此最接近的素?cái)?shù),并且其和等于該偶數(shù)。(輸出時(shí)兩個(gè)素?cái)?shù)小的在前,大的在后)。
Sample Input
20Sample Output
7 13HINT
Source
NBU OJ 解題思路:最開始用的素?cái)?shù)篩選法沒過...。 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;}}}}}}總結(jié)
以上是生活随笔為你收集整理的1224 哥德巴赫猜想(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音识别学习日志 2019-7-17 语
- 下一篇: 数据结构实验之排序六:希尔排序