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

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本身不一样。系统不会因为你的友好而加分,反而会扣掉你所有的分。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • SD_LTF 2019-01-12 12:41

    cout << "please enter a number" << endl; 不要这个

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题