问题标题: 酷町堂:1586 质数质数

1
0
已解决
祝明朗
祝明朗
初级光能
初级光能
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main()
{
    long long int n,bz=0,sum=0;
    long long int m;
    cin>>n>>m;
    for(int i=n+1;i<=m-1;i++)
    {
        for(int j=2;j<=sqrt(i);j++)
        {
            if(i%j==0) bz=1;
        }
        if(bz==0)
        {
            sum++;
        }
        bz=0;
    }
    cout<<sum<<endl;
}

http://judge.codingtang.com/problem/1586/

30,求解


2
已采纳
贾文卓
贾文卓
高级光能
高级光能

首先,区间[x,y)表示的是>=x且<y,你的理解有问题。

然后,中间的判断素数,如果找到因数了,就应该直接退出当前循环(break),可以节省时间。

但是就是这样也只有40分(TLE,超时),所以建议先打牢基础再来做这道题。

0
杨舰中
杨舰中
高级守护
高级守护
for (int i=0; i<=1000000; i++) {
        bool f=true;
        for (int j=1; j<=n; j++) {
            if (i%a[j]!=r[j]) {
                f=false;
                break;
            }
        }
        if (f==true) {
            fa=false; cout<<i<<endl; break;
        }
    }

 

0
我要回答