大众点评笔试算法之质因数分解

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

代码为:

// 质因数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<cmath>
#include<cstdlib>
#include<iostream>
using namespace std;

void Analyse(int n)
{
	//打印出
	int i;
	for(i = 2;i <= sqrt(static_cast<double>(n));i++)
	{
		if(n % i == 0)
		{
			n = n/i;
			cout<<i<<"*";
			i--;
		}
	}
	cout<<n<<endl;

}
int _tmain(int argc, _TCHAR* argv[])
{
	int n;
	cin>>n;
	cout<<n<<" = ";
	Analyse(n);
	return 0;
}

程序执行结果为

博客上看到另一种解法,感觉思路很好,其思路为:

对n进行分解质因数,应先找到一个最小得质数k,然后按下述步骤完成: 
(1)如果这个质数恰等于n,则说明分解质因数得过程已经结束,打印出即可. 
(2)如果n>=k,但n能被k整除,则应打印出k的值,并用n除以k得商,作为新的正整数n,重复执行第一步。 
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步 

实现代码为:

// 质因数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<cmath>
#include<cstdlib>
#include<iostream>
using namespace std;

void Analyse(int n)
{
	//首先输出等式左边部分
	cout<<n<<" = ";

	//对n进行质因数分解,应先找到一个最小的质数2
	//如果这个质数恰好等于2,则说明分解质因素的过程结束,打印
	if(n == 2)
	{
		cout<<n<<endl;
	}
	//n小于2时,无法进行质因素分解,提示相应信息
	else if(n < 2)
	{
		cout<<"该数不可以分解质因素"<<endl;
	}
	else
	{
		//如果n>=k,但n能被k整数,则打印出k的值
		for(int i = 2;i <= sqrt(static_cast<double>(n));i++)
		{
			if(n % i == 0)
			{
				n = n/i;
				cout<<i<<"*";
				//重复执行上一步
				i--;
			}
			//cout<<n<<endl;
		}
		cout<<n<<endl;
	}
}
int _tmain(int argc, _TCHAR* argv[])
{
	int n;
	cin>>n;
	//cout<<n<<endl;
	Analyse(n);
	return 0;
}

程序实现效果为:

时间: 2024-11-03 22:05:28

大众点评笔试算法之质因数分解的相关文章

c语言-C语言质因数分解超时,求优化,有什么好算法也说一下

问题描述 C语言质因数分解超时,求优化,有什么好算法也说一下 #include #include int su(unsigned n) { if(n==0) { return 0; } else if(n==1) { return 0; } else if(n==2||n==3) { return 1; } else { int k,g=2; k=sqrt(n); while(g<k) { if(n%g==0) { return 0; goto kk; } g++; } if(n%g!=0) {

走进大众点评神秘团队

对于不少消费者来说,客观.独立的消费点评信息能够帮助更准确做决策.而对第三方点评平台来说,如何保证点评信息的独立.客观其实挑战很大. 记者了解到,在大众点评内部,有一支很少为外界所知的神秘部队--诚信团队,他们是点评世界的警察,完全独立于业务团队之外,负责监控和处理各种炒作.虚假点评. 面对造假手法和技术层出不穷的第三方炒作机构,这支部队是如何与其战斗,保证点评内容的独立.客观的呢?带着这种好奇,记者走进了大众点评诚信团队. 技术算法配合人工审查,确保准确过滤 和现实世界里有警察与小偷一样,点评

水仙花数&amp;amp;素数&amp;amp;质因数分解的C语言实现

最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找"水仙花数".判断某数是否为素数.对一个数进行质因数分解.我想把这三个东西放到一个程序中,便写下了此文.   算法步骤 1. 寻找"水仙花数". "水仙花数"是指一个三位数,其各位数字的立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方.   2. 判断某数是否为素数. 素数是指只能被1和它本身整除的数,判断一个

大众点评进入快车道

"今年将是大众点评'脱胎换骨'的一年."2014年会上,张涛的话并未引起太多点评人的注意.反正年年喊口号,今年也不稀奇. 然而大半年过去了,很多被新任务"追着"向前冲的点评人发现,此前被业内戏称为"慢公司"的大众点评,今年已进入绝对的"加速度"模式. 据熟悉的人描述,张涛今年一直在忙,吃饭都需要计算时间.除了脸上偶尔发几颗青春痘之外,黑眼圈似乎也更明显了. 看看"成绩单":2013年底,大众点评月度PV为3

大众点评订单分库分表实践之路

本文是关于大众点评订单分库分表实践的一个具体分享,包含对订单库的具体切分策略,以及我个人的一些思考. 背景   订单单表早已突破两百G,因查询维度较多,即使加了两个从库,各种索引优化,依然存在很多查询不理想的情况.加之去年大量的抢购活动的开展,数据库达到瓶颈,应用只能通过限速.异步队列等对其进行保护.同时业务需求层出不穷,原有的订单模型很难满足业务需求,但是基于原订单表的DDL又非常吃力,无法达到业务要求.随着这些问题越来越突出,订单数据库的切分就愈发急迫了. 我们的目标是未来十年内不需要担心订

大众点评网否认操纵点评称不存在双重标准

4月7日上午消息,针对媒体报道大众点评涉嫌网操纵点评一事,大众点评网今日发表声明,称客观公正是大众点评网的基本原则,网站对于 网友的好评差评并不存在所谓的"双重标准",而是有一套严格的审核机制和公开的标准. 昨日有媒体报道,大众点评网被指涉嫌因商业利益,操纵网友点评,评论或存双重标准,其商业道德受到质疑.(石头) 以下为大众点评网声明全文: 我们一直在为客观公正而努力 日前某些媒体上出现了一些未经证实的报道,质疑大众点评网审核点评的公正性.在这里我们非常感谢广大媒体朋友和网友的关心,并

大众点评网回应:我们一直在为客观公正而努力

日前某些媒体上出现了一些未经证实的报道,质疑大众点评网审核点评的公正性.在这里我们非常感谢广大媒体朋友和 网友的关心,并再次郑重声明:客观公正是大众点评网的基本原则,网站对于上传点评有一套严格的审核机制与公开的收录标准,我们坚决抵制炒作点评.虚假点评.恶意点评,同时也会继续鼓励广大网友分享自己的真实消费体验.希望更多媒体和网友一起来监督.支持这个来之不易的信息分享平台. 作为国内最大的城市生活消费指南网站,大众点评网覆盖全国300多个大中城市70万家商户和1200万份点评,每月的独立访问IP达到

食神摇摇因抄袭大众点评再次被下架

9月7日消息,食神摇摇今日再次被苹果App Store下架,大众点评对外发布声明,称食神摇摇下架 是因为大量抄袭大众点评内容,被苹果整肃,大众点评已经收到了苹果公司的关于此次下架信息的邮件.据悉,这是食神摇摇第二次被 苹果下架.大众点评声明中表示,今年初,大众点评法务部向苹果App Store及谷歌Google Play等机构提交食神摇摇抄袭证据,食神摇摇App已经于5月23日被苹果App Store及6月6日被谷歌Google Play下架.随后食神摇摇删除部分抄袭内容重新上线.声明称,大众点

食神摇摇被苹果下架?大众点评官方声明

大众点评声明如下: 1. 早在今年2月17日及2月21日,大众点评法务部已经向食神摇摇正式发出法务公函及聘请外部律师发出律师函,要求其停止抄袭大众点评内容的侵权行为,由于该公司拒绝停止侵权,大众点评法务部随后向苹果Apple Store及谷歌Google Play等机构提交该公司抄袭证据,食神摇摇侵权App已经于5月23日被苹果Apple Store及6月6日被谷歌Google Play下架.随后该公司删除了部分抄袭大众点评内容,重新向苹果提交了新版本食神摇摇App,但新版本仍暗藏大量侵权内容,