2017腾讯编程题----素数对
生活随笔
收集整理的這篇文章主要介紹了
2017腾讯编程题----素数对
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:給定一個正整數,編寫程序計算有多少對質數的和等于輸入的這個正整數,并輸出結果。輸入值小于1000。
如,輸入為10, 程序應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7))
解析:
import java.util.Scanner;public class Main {public static int calcu(int num){if(num<=3){ //小于等于3是沒有合法的數對的return 0;}int min=num/2;//為了防止重復計算,可以折半計算int count=0;if(!isSuShu(num-1)){//意思是有一個素數是1了,剩下的那個如果是素數,直接計數count++;}for(int i=3;i<=min;i+=2){//從3為第一個素數開始判斷了if((!isSuShu(i))&&(!isSuShu(num-i))){count++;}}return count;}//判斷是否是素數public static boolean isSuShu(int n){for(int i=2;i<=Math.sqrt(n);i++){if(n%i==0){return true;}}return false;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()){System.out.println(calcu(scanner.nextInt()));}}}總結
以上是生活随笔為你收集整理的2017腾讯编程题----素数对的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017腾讯编程题----游戏人物标记
- 下一篇: 《数据库SQL实战》查找入职员工时间排名