***素数对***
- 题目
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7)) - 输入描述
输入包括一个整数n,(3 ≤ n < 1000) - 输出描述:输出对数
- 示例: 10 2
首先这个我们要掌握素数判断的方法,然后这个题目最关键的地方在于怎么判断两个数都是素数且和刚好为输入的n;算了不瞎比比了,直接上代码。
#include<stdio.h>
#include<math.h>
int main()
{
int n,flag=0;
scanf("%d",&n);
for(int i=2; i<n/2+1 ; i++)
{
if(Isprime(i) && Isprime(n-i))
flag++;
}
printf("%d\n",flag);
}
int Isprime(int n){
if(n==1)
{
return 0;
}
int flag=0;
for(int i=2; i<=sqrt(n); i++)
{
if(n%i==0)
{
flag=1;
break;
}
}
if(flag==1)
return 0;
else
return 1;
}
总而言之就是要判断素数,掌握素数判断就好解决了。