[求助]PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)

伊芙艾奥斯 2020-03-13 04:27:57
原题:https://pintia.cn/problem-sets/994805260223102976/problems/994805317546655744
求助大佬们,各种方法都试过,但是总是答案错误,只有测试点1、2能过,不知道咋回事....


代码:
#include <iostream>
#include <math.h>
using namespace std;
bool prime(int x)
{
double k=x+2;
for(int i=2;i<sqrt(k);i++)
if(x%i==0||(x+2)%i==0)
return false;
return true;
}
int main(void)
{
int N,count=0;
cin>>N;
for(int i=3;i+2<=N;i=i+2)
if(prime(i))
count++;
cout<<count;
return 0;
}

帮帮萌新,救救孩子
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LRepos 2020-03-13
  • 打赏
  • 举报
回复
不考虑优化就是这样
LRepos 2020-03-13
  • 打赏
  • 举报
回复
#include <iostream> #include <math.h> using namespace std; bool prime(int x) {   //  double k=x+2;     for(int i=2;i<=sqrt(x);i++) //         if(x%i==0) //             return false;     return true; } int main(void) {     int N,count=0;     cin>>N;     for(int i=3;i+2<=N;i=i+2)         if(prime(i+2)&&prime(i))//错误2             count++;     cout<<count;     return 0; }
LRepos 2020-03-13
  • 打赏
  • 举报
回复
你这有两个错误

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧