1059 Prime Factors

news2024/11/26 21:55:17

个人学习记录,代码难免不尽人意。

在这里插入图片描述
Sample Input:

97532468

Sample Output:

97532468=2^211171011291

下面是我第一次自己写的错误代码,虽然测试点都通过了,但是是因为测试样例有限的原因。

#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
typedef long long ll;
const ll maxn=1000;
int prime[maxn];
bool isprime(ll n){
	if(n<=1) return false;
	int sqr=(ll)sqrt(n*1.0);
	for(ll i=2;i<=sqr;i++){
		if(n%i==0) return false;
	}
	return true;
}
void getprime(){
	int count=0;
	for(ll i=0;i<100000000;i++){
		if(isprime(i)==true){
			prime[count++]=i;
			if(count==maxn) break;
		}
	}
}

int main(){
  ll num;
  scanf("%lld",&num);
  printf("%lld=",num);
  if(num==1) printf("1");
  getprime();
  vector<pair<ll,ll> > v;
  ll index=0;
  while(num!=1&&index<maxn){
  		if(num%prime[index]==0){
  		ll count=0;
  		while(num%prime[index]==0){
  			count++;
  			num=num/prime[index];
		  }
		v.push_back(make_pair(prime[index],count));
	  }
	  	index++;
  }
  
  for(ll i=0;i<v.size();i++){
  	if(v[i].second!=1){
  		printf("%lld^%lld",v[i].first,v[i].second);
	  }else printf("%lld",v[i].first);
  	if(i!=v.size()-1) printf("*");
  }
  printf("\n");
  return 0;
}

一开始我唯一疑惑的一点就是要提前计算多少个质数,然后我初步计算了1000个质数来运算发现测试点都通过了。初次之外,还需要注意一点边界值的处理,题目中虽然说如果指数是1的话不需要打印,但是没有说如果输入的数据为“1”的时候怎么处理,正确的输出应该是“1=1”,因此需要特判。

ps:我在看《算法笔记》的答案时发现答案的做法是考虑到一个数n的因子要么全部小于sqrt(n),要么只有一个因子大于sqrt(n),而我的做法没有考虑1000个质数以后如果给的数据又出现了质数的话将会输出错误。因此需要修改。
正确代码如下所示:

#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
typedef long long ll;
const ll maxn=1000;
int prime[maxn];
bool isprime(ll n){
	if(n<=1) return false;
	int sqr=(ll)sqrt(n*1.0);
	for(ll i=2;i<=sqr;i++){
		if(n%i==0) return false;
	}
	return true;
}
void getprime(){
	int count=0;
	for(ll i=0;i<100000000;i++){
		if(isprime(i)==true){
			prime[count++]=i;
			if(count==maxn) break;
		}
	}
}

int main(){
  ll num;
  scanf("%lld",&num);
  printf("%lld=",num);
  if(num==1) printf("1");
  getprime();
  vector<pair<ll,ll> > v;
  ll index=0;
  ll sqr=(ll)sqrt(1.0*num);
  for(index;index<maxn&&prime[index]<=sqr;index++){
  		if(num%prime[index]==0){
  		ll count=0;
  		while(num%prime[index]==0){
  			count++;
  			num=num/prime[index];
		  }
		v.push_back(make_pair(prime[index],count));
	  }
	  if(num==1) break;
  }
  if(num!=1) {
  	v.push_back(make_pair(num,1));
  }
  for(ll i=0;i<v.size();i++){
  	if(v[i].second!=1){
  		printf("%lld^%lld",v[i].first,v[i].second);
	  }else printf("%lld",v[i].first);
  	if(i!=v.size()-1) printf("*");
  }
  printf("\n");
  return 0;
}


   
   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/872242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

防御第九次作业

一、根据以下问题总结当天内容 1. SSL工作过程是什么&#xff1f; 当客户端向一个 https 网站发起请求时&#xff0c;服务器会将 SSL 证书发送给客户端进行校验&#xff0c;SSL 证书中包含一个公钥。校验成功后&#xff0c;客户端会生成一个随机串&#xff0c;并使用受访网站的…

OSI七层模型及TCP/IP四层模型

目录 OSI七层模型 TCP/IP四层模型 OIS七层模型和TCP/IP模型图 七层详解 两种模型比较 为什么OSI七层体系结构不常用 四层详解 网络为什么要分层&#xff1f; 说说 OSI 七层模型和 TCP/IP 四层模型的关系和区别 OSI七层模型 OSI&#xff08;Open System Interconnect&a…

5.3 个人隐私保护

数据参考&#xff1a;CISP官方 目录 一、数据泄露与隐私保护问题二、信息的泄露途径三、个人隐私信息保护四、组织机构敏感信息保护 一、数据泄露与隐私保护问题 1、数据泄露事件 数据的价值已经得到高度的认可不可避免的面临安全威胁2018年华住集团数据泄露事件中国电信…

代码控制鼠标光标移动并点击和代码模拟键盘按下(C#)

前面介绍过通过代码的方式模拟键盘按下&#xff0c;博文如下&#xff1a; C#通过代码的方式模拟键盘按下_c# 模拟键盘输入_zxy2847225301的博客-CSDN博客 这个博文是通过win32的keybd_event实现&#xff0c;可能会未来的window版本中被淘汰(不是我说的&#xff0c;看到老外一…

简单线性回归:预测事物间简单关系的利器

文章目录 &#x1f340;简介&#x1f340;什么是简单线性回归&#xff1f;&#x1f340;简单线性回归的应用场景使用步骤&#xff1a;注意事项&#xff1a; &#x1f340;代码演示&#x1f340;结论 &#x1f340;简介 在数据科学领域&#xff0c;线性回归是一种基本而强大的统…

Failed to start LVS and VRRP High Availability Monitor.

Keepalive启动报错&#xff0c;Fail to start LVS and VRRP High Availability Monitor. 解决方法 &#xff1a; cd /etc/keepalived/cp keepalived.conf.sample keepalived.conf vim keepalived.conf //找到这个模块并修改接口名称 vrrp_instance VI_1 {state MASTERinterfac…

Jeecg-boot JDBC任意代码执行漏洞

漏洞描述 JeecgBoot是一款开源的企业级低代码平台&#xff0c;提供了表单、视图、流程等一键生成代码功能&#xff0c;目前在GitHub具有 35.5k star。 在V3版本中&#xff0c;由于未对JDBC连接字符串进行限制&#xff0c;未授权的攻击者可配置恶意的连接字符串&#xff0c;通…

岛屿的最大面积(力扣)递归 JAVA

给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff09;包围着。 岛屿的面积是岛上值为 1 的…

Redis的数据结构到底是一种什么样的结构?

有了上一篇NoSQL的基础&#xff0c;我们也都知道了Redis就是一种典型的NoSql&#xff0c;那我们就先简简单单的介绍一下Redis&#xff1a; Redis是什么&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的使用ANSI C语言编写的高性能键值存储系统…

Kalman Filter VS Particle Filter

概率图模型 时间 -------->动态模型 动态模型有下面三种&#xff1a; 如果状态是离散的&#xff0c;就是我们上一节提到了Hidden Markov Model (HMM)&#xff1b; 如果状态是连续的&#xff0c;如果状态之间的关系是线性的&#xff0c;就是Linear Dynamic System (Kalman …

【第二阶段】kotlin语言的匿名函数与具名函数

fun main() {//匿名函数val niminginfoniming("kotlin",20,{"$it"})println(niminginfo)//具名函数 理解&#xff1a;showResult:(String)->String):StringshowResultImpl(result:String):Stringval juminginfoniming("c ",20,::showResultI…

【jvm】类加载器的分类

目录 一、说明二、示例2.1 代码2.2 截图 一、说明 1.jvm支持两种类型的类加载器&#xff0c;分别是引导类加载器&#xff08;bootstrap classloader&#xff09;和自定义类加载器&#xff08;user-defined classloader&#xff09; 2.自定义类加载器一般指的是程序中由开发人员…

Python 中被忽视的核心功能

这篇文章主要介绍了一些在 Python 编程中可能被忽视的核心功能&#xff0c;包括默认参数、海象运算符、*args 和 **kwargs 的使用、变量交换、str 与 repr 的区别、可迭代对象的扩展解包、多个上下文管理器的使用、Python 调试器、collections.Counter 的使用、itertools 的使用…

Mysql高阶第一章 主从架构的复现

这里写目录标题 前言第一章 找到主数据库和从数据库对应的虚拟机1.1 查对应虚拟机IP1.2 rpm 查找数据库是否安装1.3 查找数据库详细配置信息 第二章 启动主从复制2.1 SHOW SLAVE STATUS\G;2.2 Slave_IO_Running: No2.3 解决方案2.3.1 进入slave中输入&#xff0c;停止从库同步&…

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlo…

PHP实践:分布式场景下的Session共享解决方案实现

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…

(1)window配置微软商店中的Ubuntu,及错误解决方法

&#xff08;1&#xff09;首先&#xff0c;在微软商店中搜索“Ubuntu”&#xff0c;下载你喜欢的版本(此处) &#xff08;2&#xff09;设置适用于window的Linux子系统&#xff0c;跟着红色方框走 点击“确定”之后&#xff0c;会提示你重启电脑&#xff0c;按要求重启电脑即可…

【算法题解】53. 计封闭岛屿的数目

这是一道 中等难度 的题 https://leetcode.cn/problems/number-of-closed-islands/ 题目 二维矩阵 grid 由 0 0 0&#xff08;土地&#xff09;和 1 1 1 &#xff08;水&#xff09;组成。岛是由最大的 4 4 4 个方向连通的 0 0 0 组成的群&#xff0c;封闭岛是一个 完全 由…

使用shift关键字,写一个带二级命令的脚本(如:docker run -a -b -c中的run)

省流&#xff1a;shift关键字 探索思路 最近有一个小小的需求&#xff0c;写一个类似于docker run -a -b -c这样的脚本&#xff0c;这个脚本名为doline&#xff0c;它本身可以执行&#xff08;doline -a -b -c&#xff09;&#xff0c;同时又带有几个如run、init、start这样的…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种简单但常用的机器…