L1-006 连续因子(有技巧的简单枚举)

这篇博客主要探讨了如何解决寻找最长连续因子的问题。作者通过列举一些关键数据,如2的31次方、平方根等,指出12!小于2的31次方小于13!。在没有明确思路的情况下,提出采用枚举方法来解决,首先枚举因子长度,然后枚举起始点。如果找到符合条件的连续因子,即可结束循环。
摘要由CSDN通过智能技术生成

在这里插入图片描述

题解:
先摆几个数据:在这里插入图片描述
-----(2<<31)=2147483648;
-----sqrt(2<<31)=46341;
-----8!=40320
-----9!=362880
-----12!<(2<<31)<13!


在这里插入图片描述
既然木有任何思路,那我们就想枚举把.emm好吧,我想上我超级无敌沙雕的表情包了啊啊啊
继续看题。题目要求是求出最长的连续因子中最小的。那就先枚举长度,再枚举起点,假如找到了的话直接跳出双重循环就OK;

#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
int main()
{
    int n;scanf("%d",&n);
    int mid=sqrt(n),dexl,dexs,fflag=0;
    for(int len=12;len>=1;len--)//长度,len要从12开始(13!,因子1不计),这里不可以按mid的几的阶乘算啊啊
    {
        int flag=0;
        for(int sta=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值