zoukankan      html  css  js  c++  java
  • 进阶实验2-3.4 素因子分解 (20分)

    给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p1​​k1​​​​p2​​k2​​​​pm​​km​​​​。

    输入格式:

    输入long int范围内的正整数 N。

    输出格式:

    按给定格式输出N的素因式分解表达式,即 N=p1^k1*p2^k2*…*pm^km,其中pi为素因子并要求由小到大输出,指数kipi的个数;当ki为1即因子pi只有一个时不输出ki

    输入样例:

    1323
    
     

    输出样例:

    1323=3^3*7^2

    代码:
    #include <cstdio>
    #include <iostream>
    #define inf 0x3f3f3f3f
    using namespace std;
    
    bool ispri(int k) {
        if(k <= 1) return false;
        if(k <= 3) return true;
        if(k % 6 != 1 && k % 6 != 5) return false;
        for(int i = 5;i < k / i;i += 6) {
            if(k % i == 0 || k % (i + 2) == 0) return false;
        }
        return true;
    }
    
    int main() {
        int n,flag = 0;
        scanf("%d",&n);
        printf("%d=",n);
        if(n == 1) printf("1");
        for(int i = 2;i <= n;i ++) {
            if(!ispri(i) || n % i) continue;
            int c = 0;
            while(n != 1 && n % i == 0) {
                c ++;
                n /= i;
            }
            if(flag) printf("*");
            else flag = 1;
            if(c > 1) printf("%d^%d",i,c);
            else printf("%d",i);
        }
        return 0;
    }
  • 相关阅读:
    0127 date dateformat calebdar
    0126 字符串缓冲区StringBuffer类 正则表达式
    0126 String类
    0125 java API object
    0125 匿名对象 内部类 包 代码块
    0123 final关键字,static 关键字
    0123 this关键字 super关键字
    0122面向对象 构造方法
    0122面向对象3 多态
    0120 面向对象2
  • 原文地址:https://www.cnblogs.com/8023spz/p/12307973.html
Copyright © 2011-2022 走看看