天梯赛 L1-006 连续因子 (模拟)
一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为356*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式:
输入在一行中给出一个正整数N(1<N<2的31次方)。
输出格式:
首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1因子2……*因子k”的格式输出最小的连续因子序列,其中因子按递增顺序输出,1不算在内。
输入样例:
630
输出样例:
3
567
分析:
根据N的值的取值范围小于等于2的31次方,而这个值介于12的阶乘到13的阶乘之间,所以我们可以得到最大的值应该是12个数连续相乘,又因为1不计算在内,所以最多只要有11为连续因子即可。
采用暴力的思想,我们让他分别从2、3、4...sqrt(N)开始乘,连着乘11位、10位...1位。
即连续乘11位时分别为:
2 3 4 5 6 7 8 9 10 11 12相乘
3 4 5 6 7 8 9 10 11 12 13相乘
...
连续乘10位时分别为:
2 3 4 5 6 7 8 9 10 11相乘
3 4 5 6 7 8 9 10 11 12相乘
...
一直到只有一位相乘时,
这其中只要找的一个乘积s,使得N%s==0,我呢么即可认为找到了连续因子。因为iwomen这样找的规律就是符合题目上的先从长度最大的开始找,然后相同长度的里面又从开始的因子小的开始。
为了优化代码,我们可以在每次乘的时候如果当前的乘积已经大于N了,就没有再往下乘的必要了
代码:
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
int N;
scanf("%d",&N);
int n=sqrt(N);
int i,j;
long long int sum;
for(int len=11;len>=1;len--)//len控制连续因子的个数,由于N范围的限制最多只能到12的阶乘
{
for( i=2;i<=n;i++)//连续因子不包括1,从2开始乘,最大乘到N开方就肯定够了
{
sum=1;
for( j=i;j<=len-1+i;j++)//从当前的i开始,乘以的个数为len的长度
{
sum*=j;
if(sum>N)//到这就没有必要往下算了
break;
}
if(N%sum==0)//当前的sum值是N的一个因子
{
printf("%d\n%d",len,i);
for(int k=i+1;k<j;k++)
printf("*%d",k);
printf("\n");
return 0;
}
}
}
printf("1\n%d\n",N);//质数的情况
return 0;
}
天梯赛 L1-006 连续因子 (模拟)的更多相关文章
- PTA 天梯赛 L1
L1-002 打印沙漏 细节:就是在 (i>j&&i+j<r+1) 这个区间里才有空格,然后就是 for 循环 for(r=1; ;r+=2) 条件不满足之后还会再 ...
- 天梯赛L1 题解
L1-001 Hello World (5 分) 这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句“Hello World!”就可以了. AC代码:(直接输出记性) #include & ...
- PAT 天梯赛 L1-046. 整除光棍 【模拟除法】
题目链接 https://www.patest.cn/contests/gplt/L1-046 思路 用同余定理以及模拟除法. AC代码 #include <iostream> #incl ...
- PAT 团体程序设计天梯赛 L1-046 整除光棍(模拟除法)
L1-046. 整除光棍 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 翁恺 这里所谓的"光棍",并不是指单身汪 ...
- 天梯赛 L2-014 列车调度 (模拟)
火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...
- 天梯赛 L1-058 6翻了
传送门:https://pintia.cn/problem-sets/994805046380707840/problems/1111914599408664577 这道字符串题,只是天梯赛L1的题, ...
- PAT 天梯赛 L1-006. 连续因子 【循环】
题目链接 https://www.patest.cn/contests/gplt/L1-006 思路 输出的连续因子 的乘积 也要是这个数的因子 就每个数先找它的单因子 然后每个单因子往上一个一个遍历 ...
- 团体程序设计天梯赛-练习集L1-006. *连续因子
L1-006. 连续因子 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个正整数N的因子中可能存在若干连续的数字.例如630 ...
- PAT 天梯赛练习集 L1-006. 连续因子
题目链接:https://www.patest.cn/contests/gplt/L1-006 一个正整数N的因子中可能存在若干连续的数字.例如630可以分解为3*5*6*7,其中5.6.7就是3个连 ...
随机推荐
- PAT L1 - 046 整除光棍
https://pintia.cn/problem-sets/994805046380707840/problems/994805084284633088 这里所谓的“光棍”,并不是指单身汪啦~ 说的 ...
- Binlog的三种模式
binlog模式分三种(row,statement,mixed) 1.Row 日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有 ...
- locust 性能测试学习 第一天
不废话 1.安装python库 pip install locustio pip install pyzmq 2.脚本 命名为locust_test.py from locust import Htt ...
- iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转
iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转 1. 字典转Json字符串 // 字典转json字符串方法 -(NSString *)convertToJs ...
- 【Java】时间转json格式化
@DateTimeFormat(pattern="yyyy-MM-ddHH:mm:ss") @JsonFormat(pattern="yyyy-MM-ddHH: ...
- 3.7 TCP拥塞控制
3.7 TCP拥塞控制 在3.5.5流量控制中有,接收方通过维护一个rwnd来控制流量,本节中考虑三个问题: 第一, 一个TCP发送方如何限制它向其他连接发送流量的速率. 第二, 一个TCP发送方 ...
- Android 通过浏览器打开应用
在很多应用的web站,其实都有这样一个功能,就是直接在网页中打开应用,接下来的就来探讨一下这个功能的实现,有些地方也我还没弄明白,还请懂的大神指点. 首先,得说一点不好消息,在微信中,这样的方式是行不 ...
- 【MVVM 原生】原生MVVM的使用
一.前言 前些天需要完成一个任务,该任务属于公司的一些核心代码,为了避免不必要的麻烦,任务要求不能使用第三方的MVVM框架,必须用原生的. 平时习惯了Dev与MVVMLight,遇上原生的 ...
- java规范(三)-----判空----方法内的为空判断
一般我们判空或者有判断条件时 都是使用 if(条件成立){ 执行代码 } 这样的逻辑. 但是如果对象的字段很深层次时或者条件很多时就容易形成很多个{}的情况,这样就容易分不出哪个花括号属于哪部分.如下 ...
- [CTSC2007]动物园zoo
link 试题分析 发现每个小朋友最多只能看到$5$个动物所以考虑状压$dp$.我们定义$f(i,j)$为第$i$个位置从此往后$5$个人的最喜欢数量.所以只要预处理出对于每个点从后$5$个会让多少小 ...