当前位置: 首页 > news >正文

《算法每日一题(1)--- 连续因子》

《算法每日一题(1)— 连续因子》

文章目录

  • 《算法每日一题(1)--- 连续因子》
  • 前言
  • 一、连续因子---2016年天梯赛
    • 1.1 题目
    • 1.2 算法原理
    • 1.3 代码
  • 总结


前言

本系列为笔者的练习分享,题目难度适中适合刚入门(笔者也是刚入门)算法的同学学习,希望能和大家见证算法编程和逻辑思维的进步

在这里插入图片描述

一、连续因子—2016年天梯赛

1.1 题目

在这里插入图片描述

1.2 算法原理

首先我们要明确我们要输出的是最小的连续因子序列,也就是如果有两端长度相同的序列取小的那一段就可以了

接下来我们要解决两个问题:
(1) 如何找出这段序列:
解:这个时候我们就可以借鉴求解一个数是否是素数的方式,既一个数x如果有两个因子a和b,那必然有一个因子是小于等于根号x的,那我们便可以遍历2到根号x来求解连续因子
(2) 如何输出这一段序列
解:我们可以定义一个变量st每次求出一段序列便把序列头赋值给st,依照最后求出的长度使用一个for循环遍历输出就可以了

1.3 代码

#include <iostream>
#include <cmath>
using namespace std;int main()
{int n;cin >> n;//当n是合数时int st = 0; //记录序列头int ans = 0; //序列的最长长度for (int i = 2; i <= sqrt(n); i++){int j = i;int len = 0; //当前连续序列的长度int result = 1;if (n % i == 0) {while (1){result *= j;if (n % result != 0) //不满足break;len++;if (ans < len) //序列长度相同取前面小的一段:更新长度 + 因子序列的开头{ans = len;st = i;}j++;}}}//如果n是质数if (ans == 0){ans = 1;st = n;}cout << ans << endl;for (int i = 0; i < ans; i++){if (i > 0)cout << "*";cout << st + i;}cout << endl;return 0;
}

总结

今天就到这里,大家明天见
在这里插入图片描述

http://www.dtcms.com/a/507441.html

相关文章:

  • 019数据结构之栈——算法备赛
  • 网站添加内容PHP amp MySQL网站建设宝典
  • 消防有哪些网站合适做烟台网站推广排名
  • Python跳跳棋游戏:从基础实现到高级算法详解
  • gitlab搭建教程以及操作
  • 为什么称 OC 的 UIKit
  • 广州小网站建设天河区pc端网站建设
  • SpringBoot + Vue + Redis 实现验证码登录功能
  • 程序设计基础第3周作业
  • 安卓系统中线程优先级Priority查看方式汇总
  • 北京企业建设网站制作呼叫中心系统解决方案
  • IDEA EmmyLua 配置+调试
  • Win11 微软账户登录后,设置没有同步到新电脑,怎样强制刷新?
  • 网站页面设计教程济宁定制网站建设推广
  • 轮询那些事儿
  • GitLab安装
  • Redis八股
  • 网站gif素材dw做网站背景音乐
  • 做网站编程有钱途么做玩具订制网站好处
  • CI/CD:现代软件开发的持续交付之道
  • 【理论知识】Q/K/V权重矩阵学习笔记
  • 【小增长电商软件分享】微信私域淘宝电商补单/做基础销量:如何有效控制粉丝错货、复购、订单插旗及客服转账返款等常见痛点|粉丝订单管理|电商鱼塘运营方案
  • Tomcat安装与HTML响应实战
  • 第三章深度学习---核心库TensorFlow 和 PyTorch 实操指南(四)
  • YOLO v4模型
  • uni-app 小程序开发避坑:诡异的 `module ‘...‘ is not defined` 错误与我的解决方案
  • 中国最大的中文网站安庆微信网站开发
  • 广州市南沙区建设局网站网站建设与规划总结
  • 百度 PaddleOCR 3.0 深度测评:与 MinerU 的复杂表格识别对决
  • 选cpp /c++方向工作职业发展的优缺点