Gym 103145

博主分享了解决Codeforces竞赛中的EasyMathProblem,探讨如何利用数论找出6的倍数是否为半完美数,以及如何编写C++代码快速找出因子并判断。遇到思维局限时,作者反思了求因子策略,并揭示了半完美数与6的关系。
摘要由CSDN通过智能技术生成

Problem - E - Codeforces  Easy Math Problem

题意:如果一个数的因子里有几个数相加能等于它本身 那么这个数就是半完美数 现在输入一个数 如果这个数的倍数里有半完美数 就输出相加的因子数 以及要相加的因子 如果它的倍数里面没有半完美数 就输出-1

感觉后面比赛全在想这题 啊啊啊啊 因为队友一直在说该怎么求出因子 我后面就也不找规律了一直在想求因子 就陷进去了 我觉得下次可以稍微让自己脑子休息一会儿再重新来看题

我一开始的时候就问队友是不是半完美数都是6的倍数啊 我好像找到一开始几个都是6的倍数 队友马上跟我说20就不是半完美数呀 我还很失望

wwwww原来 不是半完美数一定是6的倍数 而是6的倍数一定是半完美数

!!!!

自己的思维怎么每次都那么局限 每次想到一个点就一直钻牛角尖 救命

这题用到数论:6p=p+2p+3p

1 和 2 和 3 都是 6 的因子 并且相加等于6

#include<iostream>
int main()
{
    using namespace std;
    int T;
    __int64 n;
    cin>>T;
    while(T--)
    {
        cin>>n;
        cout<<6*n<<' '<<3<<endl;
        cout<<n<<' '<<2*n<<' '<<3*n<<endl;
    }
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值