验证哥德巴赫猜想(C++)
题目:
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对
输入:
输入任意>6的正偶数(<32767)
输出:
试求给出的偶数可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)
eg:
输入:1234
输出:25
思路:这个方法比较简单,先创建一个函数用来判断一个数是不是素数,再进入主函数进行输出数字的拆分判断
#include
using namespace std;//判断一个数是不是素数bool prime(int n){for(int i=2;i6的正偶数(<32767) cin>>n;//ans为最终满足条件的对数 int ans = 0;//A+B视为B+A,所以取数取一半即n/2for(int i=2;i<=n/2;i++){if(prime(i)&&prime(n-i))//n=i+(n-i),所以判断i和n-i是否为素数,都是素数则满足题意ans++;} cout<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
