求取水仙花数 && 将整数分解成质因数
【程序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 ...
随机推荐
- LIS算法
LIS(Longest Increasing Subsequence)最长上升(不下降)子序列. 1. O(n^2) #include<cstdio> #include<algori ...
- ARC使用小结
内存管理基本原则 内存管理的依循下面的基本原则 自己生成的对象,那么既是其持有者 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有) 如果不想持有对象的时候,必须释放其所有权 不能释放已 ...
- node源码详解 (一)
本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource1 本博客同步在https://cnodejs.o ...
- 图片上传之FileAPI与NodeJs
HTML5之fileAPI HTML5之fileAPI使得我们处理图片上传更加简单. 实例 html代码 <div class="form-group"> <la ...
- 2016 ACM/ICPC Asia Regional Qingdao Online(2016ACM青岛网络赛部分题解)
2016 ACM/ICPC Asia Regional Qingdao Online(部分题解) 5878---I Count Two Three http://acm.hdu.edu.cn/show ...
- 用Hashcat每秒计算1.4亿个密码,破解隔壁WIFI密码
Hashcat是啥 Hashcat是什么呢?Hashcat是当前最强大的开源密码恢复工具,你可以访问Hashcat.net网站来了解这款工具的详细情况.本质上,Hashcat 3.0是一款高级密码恢复 ...
- Python 黑帽编程 4.2 Sniffer之数据本地存储和加载
在上一节,我们完成了编写一个简易的Sniffer的第一步--数据捕获. 很多时候,我们需要将捕获的数据先保存到磁盘上,之后再使用工具或者自己编写代码来进行详细分析. 本节我们在上一节的基础上来讲解保存 ...
- Omi教程-组件
组件 Omi框架完全基于组件体系设计,我们希望开发者可以像搭积木一样制作Web程序,一切皆是组件,组件也可以嵌套子组件形成新的组件,新的组件又可以当作子组件嵌套至任意组件形成新的组件... 简单组件 ...
- ASP.NET Core MVC 中设置全局异常处理方式
在asp.net core mvc中,如果有未处理的异常发生后,会返回http500错误,对于最终用户来说,显然不是特别友好.那如何对于这些未处理的异常显示统一的错误提示页面呢? 在asp.net c ...
- 深入子元素的width与父元素的width关系
深入理解父元素与子元素的width关系 对于这一部分内容,如果理解准确,可以更容易控制布局,节省不必要的代码,这里将简单研究. 第一部分:父子元素都是内联元素 代码演示如下: <!DOCTYPE ...