java - 给定一个数字 n ,我们必须找出小于或等于 n 且恰好有 3 个约数的数字

标签 java primes

我使用埃拉托色尼筛法来计算具有 3 个除数且小于或等于 n 的数字,其中 n 是给定数字。

此代码的问题在于,它对 n=999999 给出答案 37386,但正确答案是 168

public static void main (String[] args) throws java.lang.Exception
{
    Scanner scn =new Scanner(System .in);
    print("enter the prime no");
    int n= scn.nextint();
    int arr[]= new int[n+1];
    for(int i=2;i<arr.length;i++)
    {
        arr[i]=1;
    }

    for(int i=2;i*i<=n;i++)
    {
        if(arr[i]==1)
        {

            for(int p=2;p*i<=n;p++)
            {
                arr[p*i]=0;
            }
        }
    }

    int count=0;
    for(int i=2;i<=n;i++)
    {
        if(arr[i]==1&&i*i<n)
        {
            count++;
        }
    }

    System.out.print(count);
}

code for calculating numbers that have exactly 3 divisors

最佳答案

埃拉托斯特尼筛法用于计算素数。您的代码正确计算出有 37386 个质数小于 999999。应该可以修改代码以查找恰好具有三个除数而不是一个除数的数字,但我会将其作为提问者的练习。

关于java - 给定一个数字 n ,我们必须找出小于或等于 n 且恰好有 3 个约数的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696591/

相关文章:

java - Spring容器是否调用bean的构造函数?如果不是,如何使用 "new"关键字将字段初始化为新实例?

python - 列出 N 以下所有素数的最快方法

C 加密 : Unable to check if number is prime using libgcrypt

java - 使用 Apache Commons exec 时出现问题

python - 使用 Python 查找第 n 个素数

scala - 为什么这个 scala 素数生成如此慢/内存密集?

python - 打印下一个 N 个质数

java - 为 Domino Java 代理创建交叉证书?

java - Java中TreeSet的lower()/higher()的时间复杂度是多少?

java - 无法从头开始生成打开文档?