PAT《数据结构学习与实验指导》实验项目集 2-07

原创 2015年07月06日 21:05:55

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	long long int n;
	while(cin>>n)
	{
		int m=sqrt(n);
		int flag=1;//用于判断是否输入的数本身就是一个素数
		cout<<n<<"=";
		for(int i =2;i<m+1;i++)
		{
			if(n%i==0)
			{
				flag=0;
				cout<<i;
				int count=0;
				while(n%i==0)
				{
					count++;
					n/=i;
				}
				if(count!=1)
					cout<<"^"<<count;
				//这是为了处理数字已经分解完了,却还输出一个*号
				if(n!=1)
				{
					cout<<"*";
				}
			}
		}
		//n!=1这是我测试是发现没有的话,输入6输出是6=2*,仔细想想其实是上面因子的范围的问题
		if(flag||n!=1)
			cout<<n;
		cout<<endl;
	}
	return 0;
}

本来看到题目的时候想的是先弄一个素数的集合出来,然后从这个集合中从小到大一次计算每个素因子出现的次数,但是不知道该这么确定这个素数集合的范围,开的大小不是很能明白,于是上网搜了一下,发现其实可以不开这个素数的集合。因为从小往上整除的时候,已经是在筛选素数了,留在后面的非素数会早就被之前的素数所分解掉,所以可以直接就写。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

浙大PAT 4-06. 搜索树判断 (解题思路)

4-06. 搜索树判断 时间限制 400 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard ...

PAT《数据结构学习与实验指导》实验项目集 2-12

时间限制 400 ms 内存限制 64000 kB 代码长度限制 8000 B 判题程序 Standard ...
  • Win_Man
  • Win_Man
  • 2015年08月15日 11:46
  • 314

PAT《数据结构学习与实验指导》实验项目集 3-04

设计函数分别求两个一元多项式的乘积与和。 输入格式说明: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数...
  • Win_Man
  • Win_Man
  • 2015年08月15日 19:55
  • 333

<数据结构学习与实验指导>2-4递增链表的插入

C++

<数据结构学习与实验指导>2-1:简单计算器

C++

《数据结构学习与实验指导》2-8:用扑克牌计算24点

实验内容:一副扑克牌的每张牌表示一个数(J、Q、K分别表示11、12、13,两个司令都表示6)。任取4张牌,添加运算符(+、-、*、/)使之成为一个运算式。每个数只能参与一次运算,4个数可以任意组合,...
  • henuni
  • henuni
  • 2017年06月08日 10:48
  • 180

<数据结构学习与实验指导>3-1一元多项式求导/3-2汉诺塔的非递归实现

c++

《数据结构学习与实验指导》2-11:两个有序链表序列的合并

实验内容:已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集,新非降序链表S3。 输入说明:输入分2行,分别在每行给出由若干个正整数构成的非降序序列,用-1表示结尾(-1不属于序列)。...
  • henuni
  • henuni
  • 2017年06月09日 09:59
  • 182
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PAT《数据结构学习与实验指导》实验项目集 2-07
举报原因:
原因补充:

(最多只允许输入30个字)