输入一个大于10小于100000的整数,是否可以找到两个质数的和等于这个整数。
如13=11+2;16=13+3;
要求编写函数完成质数的判断
输入
输入一个整数
输出
若可以找到两个质数的和等于这个数输输出Y,否则输出N。
样例输入 Copy
15
样例输出 Copy
Y
提示
实例分析1,n=18
flag = 0
①i=2 j=16,j都不是质数
②i=3 j=15, j不是质数
③i=4 j=14,i和j都不是质数
④i=5 j=13,i和j都是质数,flag=1,输出Y
实例分析2,n=17
flag = 0
①i=2 j=15,j不是质数
②i=3 j=14, j不是质数
③i=4 j=13,i不是质数
④i=5 j=12,j不是质数
⑤i=6 j=11, i不是质数
⑥i=7 j=10,j不是质数
⑦i=8 j=9, i和 j都不是质数
flag=0,输出N
int iszhishu(int j,int i,int n,int b)
{
int a,flag=0;
for(a=2;a<=b;a++)
{
if(i%a==0&&j%a==0)
{
flag=0;
}
else
{
flag=1;
}
}
}
int primes(int n)
{
int i=1,j;
for(i=1;i<=n;i++)
{
j=n-i;
int iszhishu(int j,int i,int n);
}
}
#include<stdio.h>
#include<math.h>
int main(int flag=0)
{
int n,b;
scanf("%d",&n);
b=sqrt(n);
int primes(int n);
if(flag=1)
{
printf("Y");
}
else
{
printf("N");
}
return 0;
}
#include<stdio.h>
int prime(int n)
{
int i;
if (n < 2) {
return 0;
}
else {
for (i = 2; i < n; i++) {//判断n在2~n-1中有没有因数
if (n%i == 0)//如果用可以除尽的数,则非素数
break;
}
if (i >= n) {//存在2~n-1之间有因数
return 1;
}
}
return 0;
}
int main()
{
int n, b[10000], i, j, m = 0, flag;
printf("请输入一个 10 到 10000 之间的整数:");
scanf("%d",&n);
for (i = 1; i < n; i ++)
{
if (prime(i) == 1)
{
b[m ++] = i;
}
}
flag = 0;
for (i = 0; i < m; i ++)
{
for (j = i + 1; j < m; j ++)
{
if (b[i] + b[j] == n)
{
flag = 1;
}
}
}
if(flag==1)
{
printf("Y\n");
}
else
{
printf("N\n");
}
return 0;
}