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

    codevs 1792 分解质因数

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 青铜 Bronze
    题目描述 Description

    编写一个把整数N分解为质因数乘积的程序。

    输入描述 Input Description

    输入一个整数 N

    输出描述 Output Description

    输出 分解质因数 。拆成几个质数相乘的形式,质数必须从小到大相乘

    样例输入 Sample Input

    756

    样例输出 Sample Output

    756=2*2*3*3*3*7

    数据范围及提示 Data Size & Hint

    范围在longint内。不是高精度。

     1 #include<iostream>
     2 using namespace std;
     3 #include<cstdio>
     4 long long n,ni;
     5 #define N 100000
     6 #include<cmath>
     7 int prime[N],p=0;
     8 int ans[N],ai=0;
     9 int main()
    10 {
    11     cin>>n;
    12     ni=n;
    13     prime[++p]=2;
    14     for(int i=3;i<=n;++i)
    15     {
    16         bool flag=true;/*先生成一个1--n的质数数列*/
    17         for(int j=2;j<=sqrt(i);++j)
    18         {
    19             if(i%j==0)
    20             {
    21                 flag=false;
    22                 break;
    23             }
    24         }
    25         if(!flag) continue;
    26         prime[++p]=i;
    27     }
    28     while(n!=1)/*使用短除法来分解质因数*/
    29     {
    30         for(int i=1;i<=p;++i)/*枚举所有质数*/
    31           if(n%prime[i]==0)/*每次找到质因数后就break,保证每次找到最小的质因数*/
    32           {
    33               n/=prime[i];/*除去它*/
    34               ans[++ai]=prime[i];/*储存答案*/
    35               break;
    36           }
    37     }
    38     cout<<ni<<"=";
    39     for(int i=1;i<ai;++i)
    40       printf("%d*",ans[i]);
    41     printf("%d",ans[ai]);
    42     return 0;
    43 }
  • 相关阅读:
    @Order
    uri和url , 以及末尾加不加 '/'
    windows删除右键新建多余选项
    Typora 指南
    常见状态码/HttpStatusCode
    final 修饰符
    4. shiro-整合redis
    springboot 整合mybatis 一级缓存失效
    springboot查看具体访问的url片段
    JavaSE:NIO
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5506315.html
Copyright © 2011-2022 走看看