1 条题解

  • 0
    @ 2022-7-6 22:41:08

    AC记录:https://www.luogu.com.cn/record/77558646

    题目分析

    本题与 CF177B1 不同点:数据范围。

    我的CF177B1题解 是无法通过此题的

    这里必须从小到大枚举。

    本题考查贪心 + 暴力。

    每一次都枚举 nn 最小的因数,这样剩下的数就是最大的因数,记得累加求出的最大因素。

    详情见代码。

    #include<iostream>
    #include<cmath>
    using namespace std;
    int n,ans=1;//定义变量
    int main(){
        cin>>n;//输入
        while(n>1){//循环
            ans=ans+n;//累加
            bool flag=true;//定义bool变量,特判质数
            for(int i=2;i<=sqrt(n);i++){//循环
                if(n%i==0){//如果整除
                    n=n/i;//n变成最大因数
                    flag=false;//不是质数,flag改为false
                    break;//退出循环
                }
            }
            if(flag==true){//如果是质数
                cout<<ans<<endl;return 0;//输出,结束程序
            }
        }
        cout<<ans<<endl;//输出
        return 0;//养成好习惯。
    }
    

    搬运自己的题解。

    • 1

    信息

    ID
    6325
    时间
    2000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    3
    已通过
    2
    上传者