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