求取水仙花数 && 将整数分解成质因数
【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"水仙花数",153=1的三次方+5的三次方+3的三次方。
解法1:
较为简单的思路,也是我一开始想到的,但是依旧没能自己实现出来.
int num ; //待判断整数
int m,n,q; //三位数的百位,十位和个位
只需要满足: m*m*m + n*n*n + q*q*q = 100m + 10n + q 即可.使用三个for循环来分别控制百位,十位和个位
private static void method2() {
for(int a = 1;a < 10;a++){
for(int b = 0;b < 10;b++){
for(int c = 0;c < 10;c++){
int n = a*a*a + b*b*b + c*c*c;
int m = 100*a + 10*b + c;
if(m == n){
System.out.println(n);
}
}
}
}
}
解法2:
网上有一种实现方式是:通过做除法和取余的手段分别得到三个位上的数字,使用m*m*m + n*n*n + q*q*q等于此整数的方式来确定.
num%10 得到个位数
num/10再%10 得到十位数
num/100 得到百位数
private static void method1() {
for(int i = 100;i < 1000;i++){
int a = i % 10; //153%10 3
int b = (i/10)%10; //15%10 5
int c = i/100; //153/100 1
if(i == a*a*a + b*b*b + c*c*c){
System.out.println(i);
}
}
}
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:
想象以下,自己平时拿到一个正整数要分解的时候,一般都是从最小的质数,也就是2开始计算.然后对于做了除法之后的部分再次实现之前的操作.大概可以知道,本题需要一个递增的除数以及循环来实现.
正整数num,除数k = 2
1.如果num == 2,那么直接结束程序;
2.如果num > 2,判断num % 2 是否等于0,
如果等于0的话,说明2是nun的其中一个质因数,输出2,并且使num = num / k;
如果不等于0的话,说明不能被2整除,k++之后再次执行上面的判断.
直到循环条件不成立
不知道循环的次数,使用while()
public static void method(int num){
int k = 2;
if(num == k){
System.out.print(k + "*");
}
while(num > k ){
if(num % k == 0){
System.out.print(k + "*");
num = num / k;
}
if(num % k != 0){
k++;
}
}
System.out.println(k);
}
求取水仙花数 && 将整数分解成质因数的更多相关文章
- JavaScript求取水仙花数
一.什么是水仙花数 水仙花数也称为超完全数字不变数.自幂数.阿姆斯壮数.阿姆是特朗数. 水仙花数是指一个三位数,每个位数上数字的3次幂之和等于数字它本身. 水仙花数是自幂数的一种,三位的三次自幂数才叫 ...
- 百度在线笔试编程测试题(Python):整数分解成素数的积
编程测试题: 输入一个正整数将其分解成素数的乘积,输入格式连续输入m个数,然后将这m个数分别分解,如 输入: 2 10 20 输出: 2 5 2 2 5 Python code: def primes ...
- JAVA变成把一个整数分解成多个质数的积
/* * TestTengXun.java * Version 1.0.0 * Created on 2017年12月2日 * Copyright ReYo.Cn */ package reyo.sd ...
- 【C/C++】任意大于1的整数分解成素数因子乘积的形式
// #include<stdio.h> #include<math.h> #include<malloc.h> int isprime(long n); void ...
- 求n位水仙花数
求n位水仙花数 A.两个关键 1.n位水仙花数的范围是什么? n位水仙花数的范围是[10n-1,10n) 2.如何判断是否为水仙花数 核心操作: 2-1.如何得到每一位? A.核心思想 对得到的数进行 ...
- 整数分解 && 质因数分解
输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...
- java实现求二十一位水仙花数(21位水仙花数)
一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水 ...
- acm水题3个:1.求最大公约数;2.水仙花数;3.判断完数
//7.求两个整数的最大公约数#include<stdio.h>//用穷举法求出最大公约数int gcd1(int m,int n){ int min = m > n ? n : m ...
- 二、求水仙花数,打印出100-999之间所有的"水仙花数"
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方 public c ...
随机推荐
- java发送邮件完整实例 java邮件工具类
http://yuncode.net/code/c_552a2e2dc593894 package com.srie.mail; import java.util.Properties; import ...
- ResultSet遍历过程中修改自身数据,不会改变循环的过程
ResultSet遍历过程中修改自身数据,不会改变循环的过程: import java.sql.Connection; import java.sql.PreparedStatement; impor ...
- Xtrabackup构建MySQL主从环境
环境:HE3主库,HE1从库 HE1:192.168.1.248 HE3:192.168.1.250 从库my.cnf加入以下参数并重启数据库: read_only=1 log_slave_updat ...
- HTML5 新元素、HTML5 Canvas
HTML5 新元素 自1999年以后HTML 4.01 已经改变了很多,今天,在HTML 4.01中的几个已经被废弃,这些元素在HTML5中已经被删除或重新定义. 为了更好地处理今天的互联网应用,HT ...
- html标签大全(2)
http标签详解 声明 1:这里的文字都是我从我自己csdn账号拷贝过来,是本人学习总结的结晶,所以请尊重本作品.2:如要要转载本文章,则要说明文字的出处.3:如有哪里不对欢迎指出. 在上一篇文章中主 ...
- Crontab could not create directory .ssh
最近在利用 crontab 构建自动备份时,遇到了一个问题.我的脚本中包含了用于服务器用户切换使用的 ssh 命令.当我登录到服务器上时,脚本执行正常:当我没有登录到服务器上时,脚本执行失败,错误提示 ...
- A+B problem (High-precision)
The "A+B problem" is very easy,but I failed for many times. The code: #include<iostream ...
- 5个步骤创建你的第一个RESTFul 服务
1.啥是RESTFul 服务 在我们创建简单小程序前,先来学习下RESTFul 服务.RESTFul服务就是遵循了 Representational State Transfer(可以参考http:/ ...
- 使用 flow.ci 快速发布你的项目文档
软件研发的协作过程中,文档是必不可少的一环,有需求文档.接口文档.使用文档等等.当开始写文档时,首先会遇到两个问题: team members 之间如何协作? 文档 OK 后如何分发,去哪里看?如何更 ...
- JAVA中的数据结构 - 1,红黑树
背景: 在JDK源码中, 有treeMap和JDK8的HashMap都用到了红黑树去存储 红黑树可以看成B树的一种: 二叉树-->搜索二叉树-->平衡搜索二叉树-->B树--> ...