素数对+判断质数
2018-04-03 02:09
309 查看
描述
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
输入:
10输出
2思路
首先这道题,需要一个判断是不是质数的方法,然后从2开始一直到n/2,判断i和n-i是不是满足同时为质数,如果满足count++判断质数代码,以下两种方法均可
public static boolean isss(int n){ for(int i=2; i<=Math.sqrt(n); i++){ if(n%i == 0) return false; } return true; }
//判断一个数是否是质数(素数) public boolean isPrimeNumber(int num){ if(num == 2) return true;//2特殊处理 if(num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数 for(int i=3; i<=Math.sqrt(num); i+=2){ if(num % i == 0){//识别被奇数整除 return false; } } return true; }
完整代码:
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int count =0; while(sc.hasNext()){ int n = sc.nextInt(); for(int i=2;i<=n/2;i++){ if(isPrimeNumber(i) && isPrimeNumber(n-i)){ count++; } } } System.out.print(count); } //判断一个数是否是质数(素数) public static boolean isPrimeNumber(int num){ if(num == 2) return true;//2特殊处理 if(num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数 for(int i=3; i<=Math.sqrt(num); i+=2){ if(num % i == 0){//识别被奇数整除 return false; } } return true; } }
参考:
https://blog.csdn.net/ahem_/article/details/65939250相关文章推荐
- 使用Python判断质数(素数)的简单方法讲解
- 正则表达式判断质数(素数)的代码
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路
- 判断素数(质数)
- 判断素数(质数)
- C#l练习(用方法来实现:①判断一个给定的整数是否为“质数”。②计算1-100之间的所有质数(素数)的和
- php判断一个数是否为质数(素数)
- 判断质数与素数表
- ruby判断一个数是否为质数(素数)示例
- java判断一个数是否是素数(质数)
- 使用Python判断质数(素数)的简单方法讲解
- 判断是否为素数或质数
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路
- java质数判断/质数因子/所有质数(素数)*
- 判断101-200之间有多少个素数(又称质数(prime number)),并输出所有素数。
- 判断是否为质数(素数)
- 判断质数(素数)
- Java判断一个数是否为质数/素数
- Python如何判断质数(素数)
- 正则表达式判断质数(素数)的代码