分解 n!

Description

给你一个数 n (1 < n <= 1000000) ,求 n! (n的阶乘)的质因数分解形式,质因数分解形式为n=p1^m1*p2^m2*p3^m3……*  这里 p1 < p2 < p3 < …… 为质数
*  如果 mi = 1, 则   ^ mi   就不需要输出 

Input

输入是多case的,每行一个数n,1 < n <= 1000000,当n等于0时输入结束

Output

每个n输出一行,为它的质因数分解形式

Sample Input

6
7
0

Sample Output

6=2^4*3^2*5
7=2^4*3^2*5*7

题意:给出n,将n!分解成质因子相乘的形式。

在这里如果每次给出n并且去求小于n的质因子,肯定会超时,因此可以先把1000000以内的质数求出来存在数组里,后面需要直接调用,并且这里求质数不能采用简单的试除法去求,那样效率很低,这里我们采用筛选法求解。

#include<iostream>
#include<math.h>
using namespace std;bool isprime[1000001];
int prime[80000];
int num=0;void getPrime()     //用筛选法求算素数
{int i,j;for(i=0;i<1000001;i++){isprime[i]=true;}for(i=2;i<=1000;i++)        //如果isprime[i]==true,即i是素数,那么i,2*i,3*i必定不是素数
    {for(j=i+i;j<=1000000;j+=i){if(isprime[i]==true)isprime[j]=false;}}for(i=2;i<1000001;i++){if(isprime[i]==true){prime[num++]=i;}}
}int count(int n,int k)         //求n!中含有某因子k的个数
{int num=0;while(n){num+=n/k;n=n/k;}return num;
}int main(void)
{int n;getPrime();while(scanf("%d",&n)==1&&(n>1&&n<=1000000)){int i,j;int m;for(i=0;i<num;i++){if(prime[i]>n)break;}printf("%d=",n);for(j=0;j<i-1;j++){m=count(n,prime[j]);if(m>1)printf("%d^%d*",prime[j],m);elseprintf("%d*",prime[j]);}m=count(n,prime[j]);if(m>1)printf("%d^%d\n",prime[j],m);elseprintf("%d\n",prime[j]);        }return 0;
}
本文转载自海 子博客园博客,原文链接:http://www.cnblogs.com/dolphin0520/archive/2011/04/12/2014001.html如需转载自行联系原作者

n!的分解 soj 2666相关推荐

  1. NLP-预训练模型-2019:ALBert【 轻Bert;使用 “输入层向量矩阵分解”、“跨层参数共享” 减少参数量;使用SOP代替NSP】【较Bert而言缩短训练及推理时间】

    预训练模型(Pretrained model):一般情况下预训练模型都是大型模型,具备复杂的网络结构,众多的参数量,以及在足够大的数据集下进行训练而产生的模型. 在NLP领域,预训练模型往往是语言模型 ...

  2. 自动驾驶关键技术分解和流程

    自动驾驶关键技术分解和流程 自动驾驶关键技术分解 图1. 关键技术分解 自动驾驶流程 图2. 自动驾驶可能的流程

  3. 上三角矩阵的特征值分解

    引入问题:给定一个对角线非零的上三角矩阵\(M\),求\(M^k\),满足\(M\)的阶\(\le 500\),\(k\le 10^9\). 对998244353取模. 一个显而易见的算法是矩阵快速幂 ...

  4. ORB特征提取算法分析与实现,算法分解

    本文对2012年最好的特征检测论文,进行了评价和分析.以及相关实现的代码.             本文所来自于原文附件在下面.点击打开链接 ORB:SIFT或SURF的有效替代算法 Ethan Ru ...

  5. python时间序列动图_手把手教你用Python进行时间序列分解和预测

    来源:数据派THU(ID:DatapiTHU) ▔ 作者:Mohit Sharma 翻译:王闯(Chuck) 校对:王可汗 预测是一件复杂的事情,在这方面做得好的企业会在同行业中出类拔萃.时间序列预测 ...

  6. vmd变分模态分解程序matlab论坛_博士兼职辅导员论坛分享会第三期

    新一期经验分享报告会又来了!本次报告满满干货,快来看看都有些什么内容吧? 报告题目 齿轮箱关键零部件复合故障特征提取方法研究 报告摘要: 基于振动信号的复合故障特征提取技术一直以来都是旋转机械故障诊断 ...

  7. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...

    对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...

  8. 读后感与机翻《人类因果学习的分解:自下而上的联想学习和自上而下的图式推理》

    研究朱松纯FPICU体系的第 2 篇文章 <Decomposing Human Causal Learning: Bottom-up Associative Learning and Top-d ...

  9. 基于C++的本征图像分解(Intrinsic Image Decomposition)

    利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) im ...

最新文章

  1. linux服务器之LVS、Nginx和HAProxy负载均衡器的对比
  2. COOKIE格式与读写相关
  3. boost::search相关的测试程序
  4. 《编程之美》读书笔记(十):“链表相交”扩展问题
  5. JavaScript方法
  6. Binding(一):数据绑定
  7. 整合营销推广该如何做?
  8. (08)Vivado时钟约束
  9. 关于jquery你不得不知的小知识
  10. android之wifi开发
  11. 【Flutter】微信项目实战【07】 通讯录界面搭建(下)
  12. C#门诊收费管理系统设计(数据库+源码+文档)
  13. 【C语言】模块化编程-通俗易懂
  14. Python 流程控制
  15. School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
  16. windows10 应用程序启动快捷键设置与取消
  17. 华北电力大学控制与计算机工程学院怎么样,华北电力大学控制与计算机工程学院实践部10月25日动保劳动感想...
  18. calibre 电子书库/电子书管理软件--相关配置
  19. 佛山 新型智慧城市建设实打实
  20. 用史上最牛学习法自学编程,不香吗?

热门文章

  1. python面试文件操作_python基础-三分钟搞定面试官爱问的【文件操作】
  2. texstudio自动拼写检测_飞桨PaddleDetection物体检测统一框架详解
  3. lisp用entmake生产圆柱体_投石科技圆柱体全息幻象装置
  4. Webpack執行打包:“You may need an appropriate loader to handle this file type“
  5. python中functools_(转)Python——functools
  6. Android对话框动态加载布局
  7. win7计算机右键直接有设备管理器等相关,为什么我的计算机点击右键后里头没有设备管理器了?windows7旗舰版的,不知怎么就不见了...
  8. python二维数组初始化_如何在Python中初始化二维数组?
  9. oracle中将两个字段合并在一起_日期合并
  10. VB 窗体实现文件拖拽获取路径方法