写点什么

【新手入门】如何 java 来求各种数

作者:极客罗杰
  • 2023-12-31
    上海
  • 本文字数:1232 字

    阅读完需:约 4 分钟

【新手入门】如何java来求各种数

  本文将教大家如何计算数学中的各种数,素数,完美数,水仙花数,使用的是 java 语言,一种普遍应用的语言。

  首先,让我们来看看这几种数的定义:

  素数:一个大于 1 的自然数,除了 1 和它自身外,不能被其他自然数整除的数叫做质数。

  完美数(完备数):所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

  水仙花数(自恋数):水仙花数是指一个 3 位数,它的每个数位上的数字的 3 次幂之和等于它本身。

 

// 寻找从2开始的多少个素数
public static int[] findPrimeNumber(int arrSize) {
    int[] primes = new int[arrSize];
    primes[0] = 2;
    boolean isDivisible;
    for (int prime = 3, i = 1; prime < arrSize; prime++) {
        isDivisible = false;
        for (int factor = 2; factor < prime; factor++) {
            if (prime % factor == 0) {
                isDivisible = true;
            }
        }
        if (!isDivisible) {
            primes[i++] = prime;
        }
    }
    return primes;
}
复制代码

 

// 寻找多少以内的完美数
public static int[] findPerfectNumber(final int upside) {
    int[] pNums = new int[100];
    int index = 0, sum = 0;
    if (upside <= 0) {
        return new int[0];
    }
    for(int i = 1; i <= upside; i++) {
        sum = 0;
        for(int j = 1; j < i; j++) {
            if (i % j == 0) {
                sum = sum + j;
            }
        }
        if (sum == i) {
            pNums[index++] = i;
        }
    }
    return pNums;
}
复制代码

 

// 寻找100到999的水仙数
private static void printNarcissusNumber() {
    int i;
    final double exponent = 3;
    System.out.print("Narcissus numbers between 100 and 999: " + "\n");
    for(i = 100; i <= 999; i++) {
        // Narcissus Number satisfied criteria formula
        if( ((((i/100)) * ((i/100))* ((i/100))) + (((i/10)%10) * ((i/10)%10) * ((i/10)%10)) + (((i%100)%10) * ((i%100)%10) * ((i%100)%10)) == i) )
            // Use java.lang.Math final class static pow method
            //if( (Math.pow((double)(i/100), exponent) + Math.pow((double)((i/10)%10), exponent) + Math.pow(((double)(i%100)%10), exponent)) == i )
            System.out.print(i + "\n");
    }
}
复制代码

 

  本文介绍了如何用 java 编程语言计算素数,完美数,水仙花数,希望大家能有所学习。

发布于: 刚刚阅读数: 4
用户头像

极客罗杰

关注

还未添加个人签名 2021-04-11 加入

还未添加个人简介

评论

发布
暂无评论
【新手入门】如何java来求各种数_极客罗杰_InfoQ写作社区