关于inline的问题
查看原帖
关于inline的问题
1074084
asd890123楼主2024/5/5 08:39
#include <iostream>

using namespace std;

int prime[5140];

bool G(int x){
    
    if (x < 2) return 0;
    if (x == 2) return 1;
    for (int i = 2;i * i <= x;i++)
        if (x % i == 0)
            return 0;
    return 1;
    
}

inline bool P(int x){
    
    if (x < 2) return 0;
    if (x == 2) return 1;
    for (int i = 0;i < 5133 && prime[i] * prime[i] <= x;i++)
        if (x % prime[i] == 0)
            return 0;
    return 1;
    
}

int main(){
    
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    
    int l,r,pail = 0,ans = 0;
    
    cin >> l >> r;
    for (int i = 2;i <= 50000;i++)
        if (G(i))
            prime[pail++] = i;
    for (int i = l;i <= r;i++)
        if (P(i))
            ans++;
    cout << ans << endl;
    
    return 0;
}

这个程序中的唯一开inline的函数,不开#9超时(1.2s+),开了降到607ms,可以AC,但其他测试点都几乎不变,为什么?

2024/5/5 08:39
加载中...