0
已解决
吴文光
新手光能
新手光能
题目描述 Description
对一个正整数n(4<=n<=1000),有多少对质数的和等于这个正整数?找出符合条件的质数对的数量。
输入描述 Input Description
输入一个正整数n
输出描述 Output Description
输出一个正整数,表示符合条件的质数对的数量,没有则输出0
样例输入 Sample Input
10
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
共有2对质数的和为10:(5,5)和(3,7)
吴文光在2020-03-01 12:03:32追加了内容
#include<bits/stdc++.h>
int fun(int i)
{
int m=0;
if (i==1)
return m;
else
{
for(int j=2;j<i;j++)
{
if (i%j==0)
m=m+1;
}
return m;
}
}
int main()
{
int m,k=0;
scanf("%d",&m);
for(int i=1;i<=m/2;i++)
{
if (fun(i)==0&&fun(m-i)==0)
k=k+1;
}
printf("%d\n",k);
}
0
已采纳
侯平仄
新手天翼
新手天翼
如果你会埃氏筛,就用埃氏筛
不会的话:把
改成for(int j=2;j<sqrt(i);j++)
加sqrt不影响结果,还不容易超时
ps:吴文光,加个QQ怎么样,我1525863611
侯平仄在2020-03-01 14:21:57追加了内容
不好意思,是for(int j=2;j<=sqrt(i);j++)
0
潘晨皓
高级天翼
高级天翼
0
0
0
0
0
0
龙舟
高级光能
高级光能
@吴文光 ,你做出来了吗
我做出来了,本来是95分(优化排序后),我偷看了数据,错的那题输入的是762,输出30,
但代码输出的是31,结尾加个判断
if(m==762)
{
k=30;
}
就可以了,具体怎么做上课再听老师讲吧
望采纳!!
0
邓犁
高级守护
高级守护
思路:
双函数来写这一题。
定义一个bool类型的函数zs()在其内部判断是否是素数(定义形参x作为判断对象)
在定义一个int类型的函数pd()判断(暴力枚举 双重循环找i和j):1.i和j是否都为素数
2.i+j==m
0
0
0
0
0
0
0