Alexanderise 2019-01-06 15:07 采纳率: 100%
浏览 529
已采纳

PAT考试1007. 素数对猜想 (20) VS上正常运行,但不能AC

图片说明

VS上可以运行并且得出正确结果的,但是不能AC,想请教各位大神,看看我代码哪里出了问题,非常非常非常感谢!

附上题目

让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N (< 10^5),请计算不超过N的满足猜想的素数对的个数。

输入格式:每个测试输入包含1个测试用例,给出正整数N。

输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

输入样例:
20
输出样例:
4

#include<iostream>
using namespace std;
int main()
{
    cout << "please enter a number" << endl;
        int N;
    cin >> N;
    int i = 1;
    int count = 0;
    int j, n, m, d;
    int a[100000];
    a[0] = 2;
    if (N >= 100000)
    {
        return -1;
    }
    else
    {
        for (n = 3; n <= N; n++)
        {
            bool ok=1;
            for (m = 2; m < n; m++)

                {
                    if (n%m == 0)
                    { 
                        ok = !ok;
                        break;
                    }
                }
            if (ok)
            {
                a[i] = n;
                cout << a[i] << endl;
                i++;
            }
        }
        for (j = 0; j < i - 1; j++)
        {
            d = a[j + 1] - a[j];
            if (d == 2)
                count++;
        }
        cout << count << endl;
        return 0;
    }
}

  • 写回答

2条回答 默认 最新

  • _ZGq 2019-01-07 12:47
    关注

    不要输出提示输入信息!(第四行)

    你看看,如果是系统辨认的话,比如说正常输出是xxx,系统会认为你输出了这个:

    please enter a number

    xxx

    这显然和xxx本身不一样。系统不会因为你的友好而加分,反而会扣掉你所有的分。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作