zoukankan      html  css  js  c++  java
  • 分解质因数

    题目如题

    求一个数分解质因数,只要从最小的质数除起,一直除到结果为质数,所以按理说应该先找到比N小的全部质数。先看代码:

     1 import java.util.Scanner;
     2 public class test
     3 {
     4     public static void main(String [] args)
     5     {
     6         int m,n,i;
     7         Scanner scanner=new Scanner(System.in);
     8         System.out.printf("input a number n=:");
     9         n=scanner.nextInt();
    10         m=n;
    11         for(i=2;i<=n;i++)
    12         {
    13             if(n%i==0)
    14             {   
    15                 System.out.printf("%4d",i);
    16                 n=n/i;
    17                 i--; //如果已经找到了一个质数,继续判断此时的i是否还是余数的因子
    18             }
    19         }
    20     }
    21 }

    显然不是把全部比N小的质数找出来再逐个判断,这里使用了短除法。下面说说短除法是怎样得到同样的结果的。

    每当找到一个质数a的时候,总是判断余数是否还包含有质数a,否则继续判断下一个整数,如果它可以整除余数,那么它一定是一个质数。因为如果它是合数,那么它可以被前面的质数分解,但它的因子肯定在这之前都被找出来了。

  • 相关阅读:
    [GXOI/GZOI2019] 旧词
    [HDU6756] Finding a MEX
    [洛谷P5110] 块速递推
    [CF739C] Alyona and towers
    1349. 修理牛棚
    L2-028 秀恩爱分得快 (25 分)
    L2-009 抢红包 (25 分)
    L1-043 阅览室 (20 分)
    2020年天梯赛-模拟赛 L1-6 检查密码 (15 分)
    L1-046 整除光棍 (20 分)
  • 原文地址:https://www.cnblogs.com/ttpn2981916/p/6591741.html
Copyright © 2011-2022 走看看