输出400以内的smith数
来源:互联网 发布:shadowrocket 知乎 编辑:程序博客网 时间:2024/05/17 02:44
输出400百以内的smith数。smith数是指满足下列条件的可分解的整数:
其所有位数上的数字和等于其全部素数因子的数字之和。
例如,9975是smith数,9975=3*5*5*7*19,即9975的数字和=因子的数字总和=30.
补充说明一下:根据smith数的定义,素数不是smith数。
java代码实现:
public class SmithNum {/** * @param args * 输出400百以下的所有smith数 */public static void main(String[] args) {int[] num1 = new int[20];for (int i = 1; i < 400; i++) {if (isPrime(i)) // 素数不是smith数,直接pass掉continue;int k = 0;int sum1 = 0;// 所有的因子的数字总和int sum2 = 0;// i的数字总和for (int j = 2; j <= i; ++j) { // 求数i的所有素数,并存进数组num1中if (i % j == 0) {if (isPrime(j)) { // 如果为true,就把数存进数组中int[] tempArr1 = intToNumArray(j);for (int m = 0; m < tempArr1.length; m++)num1[k++] = tempArr1[m];int temp = j * j;while (i % temp == 0) {for (int m = 0; m < tempArr1.length; m++)num1[k++] = tempArr1[m];temp *= j;}}}}for (int p = 0; p < k; p++)// 求所有因子的数字之和sum1 += num1[p];int[] tempArr2 = intToNumArray(i);for (int p = 0; p < tempArr2.length; p++)// 求数字本身的数字之和sum2 += tempArr2[p];if (sum1 == sum2) {System.out.print(i+" ");}}}public static int[] intToNumArray(int n) {String str = Integer.toString(n); // 将整型数字转换成字符串int[] nums = new int[str.length()];for (int i = 0; i < str.length(); i++)// 将字符串中对应的字符数字输到数组中nums[i] = Integer.parseInt(String.valueOf(str.charAt(i)));return nums; // 返回一个整型数组}public static boolean isPrime(int n) { // 判断一个整型数是不是素数if (n == 2)return true;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0)return false;}return true;}}
0 0
- 输出400以内的smith数
- 求400以内的Smith数,用循坏解决(还未用递归)
- 编程输出1000以内的完数
- 输出10000 以内的所有回文数
- 输出1000以内的水仙花数
- 输出1000以内的所有完数
- 输出10000以内的回文数
- 输出100-1000以内的水仙花数
- 输出10000以内的回文数
- 输出1000以内的完数
- 输出1000以内的水仙花数
- 输出100以内的完数
- 输出10000以内的完数
- 输出1000以内的完数
- 输出10000以内的所有回文数
- 输出10000以内的所有回文数
- 输出10000以内的回文数
- js: 输出一个数以内的素数
- Spoofax语言工作台学习笔记——概念篇
- 基于jquery的文字向上跑动
- imp/impdp
- ZegGraph用法系列1--一些基本概念
- Android - Android Studio修改字体(font)大小(size)
- 输出400以内的smith数
- 项目4--拓展1
- AIX启动oracle多个实例的方法
- 粒计算概念
- XMPP协议学习笔记三(Openfire服务器端搭建开发环境)
- E-mail中的域名和DNS相关知识(A记录,MX记录)
- python变量及其作用域,闭包
- JFreeChart生成柱状图
- null和""的区别