0
已解决
赵朗
高级光能
高级光能
3823:找质数对
找错
赵朗在2020-04-30 22:55:32追加了内容
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- using namespace std;
- int cmp(int tp)
- {
- int m=0;
- if (tp==1)
- return m;
- else
- {
- for(int i=2;i<=sqrt(tp);i++)
- {
- if (tp%i==0)
- m++;
- }
- return m;
- }
- }
- int main()
- {
- int m,sum=0;
- cin>>m;
- for(int i=1;i<=m/2;i++)
- {
- if (cmp(i)==0&&cmp(m-i)==0)
- sum++;
- }
- cout<<sum;
- }
0
已采纳
李泽远
高级天翼
高级天翼
for(int i=2;i<n;i++){
if(prime(i)&&prime(n-i)&&a[n-i]==0)
cnt++;
a[i]++;
}
prime(i)是判断素数的函数
0
0
0
丁海洋
中级守护
中级守护
本人思路,for循环应从2开始,而且也可以不用函数啊,定义一个数组a,首先a[1]要定义为1。因为1不是质数,然后你要去判断b是不是0,是0,直接输出0;然后不知道你学没学到埃氏筛,用埃氏筛代码(没学到不建议写)去找出n以内的质数,然后fori循环判断成不成题目说的条件,成cnt++且c【i】=1,因为不能重复
然后ac喽!
0
吴庞茂旭
资深光能
资深光能
emmmm,这一题我AC过。
我先说一下我的思路吧:先定义一个求质数的函数(我默认你会,真不行可以上网查一下,说不定有你想要的),再循环从1开始到n/2结束(你看你是不是错在这了),然后套用这个公式:质数函数(i)&质数函数(n-i)&i+(n-i)是n(&是位运算符,常用可以加速哦!),若正确,计数器加一。最终输出计数器。
修改建议:将cmp函数改为判断质数的函数,套用公式质数函数(i)&质数函数(n-i)&i+(n-i)是n,sum++(但我强烈建议将sum改为cnt,言简意赅,意思明确)
手写不易,求通过。
部分代码:
0
0