algorithm - 有效地计算范围内的奇数

标签 algorithm primes number-theory

我找不到解决这个问题的好办法; 我需要计算范围效率中的 sphenic 奇数的数量我使用过筛算法,但通常应该有更好的方法来做到这一点。

奇数是 3 个不同的奇质数的乘积。

我试过这个,但它需要很多时间。

char t[200000001];
int dp[200000001];
int main() {
    cin.tie(0);
    ios_base::sync_with_stdio(false);
   for(int i=3;i<200000001;i+=2)
   {
       if(t[i]==0)
        {
            for(int j=i;j<200000001;j+=i)
                t[j]++;
        }
        if(t[i]==3 && i%2)
            dp[i]=1;
   }


    for(int i=100;i<200000001;i++)
        dp[i]+=dp[i-1];

    int test=0;
    cin>>test;
    for(int tt=1;tt<=test;tt++)
    {
        int a,b;
        cin>>a>>b;
        cout<<dp[b]-dp[a-1]<<"\n";
    }

}

谢谢

编辑: 我正在尝试解决这个问题: http://codeforces.com/group/HtnK54FR7R/contest/219854/problem/D

最佳答案

从 3 开始的初筛是个好主意。但是最高可能有用的素数是......? (提示:200,000,000/(? * ?))

一种可能的方法是在生成素数时向后枚举两个素数的组合,二进制搜索第二个的最高索引和第三个可能的最低索引,如果 15 * current_prime 则完全退出生成 大于 r

关于algorithm - 有效地计算范围内的奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999401/

相关文章:

c - 为什么一段代码在迭代一定次数后会一直不停地运行?

c# - .NET 中是否有公开可用的素数表

java - 求取模结果的正确方法

寻找具有给定因子数的最小数的算法

algorithm - 如何在不使用 Google 的情况下估算 "Did you mean?"?

javascript - 使用 nodejs 从页面中获取规范化或查找标题

c++ - 模拟练习的时间复杂度

algorithm - 复杂性算法分析与 if

c++ - 我的埃拉托色尼筛法耗时太长

algorithm - 将自然数表示为不同平方和