华为在线编程系列-质数因子
2017-04-07 09:54
190 查看
题目:给定一个long型的数,按照从小到大的顺序输出其所有质数因子
输入输出描述
思路:最小的质数为2,最大的质数为本身(如果这个数就是质数的话)当这个数不为1的时候,可以通过for循环来求其最小质因子,一旦找到一个质因子,则跳出当前循环,寻找下一个最小质因子
代码:
* 拓展:求1到n的所有质数,从小到大排序
思路:对于2-n(包括n)中的每个数,通过for循环和一个isPrime来标志这个其是否是质数
输入输出描述
输入:一个long型整数 输出:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
思路:最小的质数为2,最大的质数为本身(如果这个数就是质数的话)当这个数不为1的时候,可以通过for循环来求其最小质因子,一旦找到一个质因子,则跳出当前循环,寻找下一个最小质因子
代码:
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ long value = scan.nextLong(); while(value != 1){ for(int i = 2; i <= value; i++){ if(value%i == 0){ value = value/i; System.out.print(i + " "); break; } } } } } }
* 拓展:求1到n的所有质数,从小到大排序
思路:对于2-n(包括n)中的每个数,通过for循环和一个isPrime来标志这个其是否是质数
/** * Created by hmh on 2017/4/7. */ import java.util.*; public class FindAllPrime { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); boolean isPrime = true; while(scanner.hasNext()){ long value = scanner.nextLong(); for(int i = 2; i <= value; i++){ //看i是否为质数 for(int j = 2; j < i; j++){ if(i%j == 0){ isPrime = false; break;//如果能被整除,说明还有质因子 } } if(isPrime){ System.out.print(i + " "); } isPrime = true; } } } }
相关文章推荐
- 牛客网_华为机试_006_质数因子
- 华为OJ——质数因子
- 华为OJ训练之0046-170222-质数因子
- 华为机试(字符串间隔,进制转换,质数因子)Java
- 菜鸟练习华为级考题——质数因子
- 华为在线编程系列-字符串分割
- 华为机试题:质数因子
- 华为机试——质数因子
- 华为在线编程系列-坐标移动
- 华为在线编程系列-字符串排序
- 华为上机题之质数因子
- 华为oj 质数因子
- 华为在线编程系列-提取不重复的整数
- 【华为 OJ】 质数因子
- 【华为oj】质数因子
- 华为机试测试- 质数因子
- 华为在线编程系列-数据分类处理
- 华为在线编程系列-明明的随机数
- 华为OJ——质数因子
- 华为oj 进制转换&&质数因子