【问题标题】:count how many times a prime is dividing a number计算素数除以数字的次数
【发布时间】:2018-11-10 21:44:05
【问题描述】:

我是初学者,我的代码找到了除以给定数字的所有素数,但我希望它还打印素数除以多少次。 这是我的代码:

public static void main(){
    Scanner myScanner = new Scanner (System.in) ;
    int n = myScanner.nextInt();
    int prime = 2 ;
    int count = 0 ;
    while ( prime <= n ){
        if ( n%prime == 0 ) {
            n = n/prime ;
            System.out.println(prime + " " +count);
        }
        if ( n%prime !=0 ){
            prime = prime + 1;
        }
    }
}

希望你能理解我,谢谢!!

【问题讨论】:

  • 你没有增加你的计数器,添加“count++;”在打印之前。

标签: java primes divide


【解决方案1】:

你忘了增加计数器:

System.out.println(prime + " " +(++count));

【讨论】:

    【解决方案2】:

    您需要为每个有余数的除法增加计数器0
    一旦余数不是0,您必须退出循环:

    public static void main(String[] args) {
        Scanner myScanner = new Scanner (System.in) ;
        int n = myScanner.nextInt();
        int prime = 2;
        int count = 0;
    
        while ( prime <= n ){
            if ( n % prime == 0 ) {
                n /= prime;
                count++;
            } else
                break;
        }
    
        System.out.println(prime + " " +count);
    }
    

    【讨论】:

    • 这不是我想要的,假设 n=100,它打印:2 1 2 2 5 3 5 5 我希望它打印:2 2 5 2
    • @SapirushKalifa 你复制了我的代码还是别的什么?
    • 什么不起作用?设置数字为 100 时不想打印 2 2 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2016-04-21
    • 2022-11-30
    • 2021-12-16
    • 2018-10-19
    相关资源
    最近更新 更多