E - Sigma Function【数学】【规律】

该博客介绍了如何解决一道数学问题,计算1到n中约数为偶数的个数。通过观察和分析,博主发现平方数的约数和是奇数,含有2的奇数次幂的数的约数和也是奇数。解决方案是将n减去这些数的个数,得到的就是答案。博主给出了AC代码,揭示了问题的解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:https://vjudge.net/contest/333800#problem/E
题目大意:根据唯一分解定理,计算 [ 1 , n ] [1,n] [1,n]约数是偶数的个数。
思路:被数据范围演了,打表找规律即可。
我们发现:一个数是平方数的话约数和就是奇数(直接开方向下取整);一个数包含2的奇数次方的约数和也是奇数(除2之后直接开方向下取整),所以用 n n n减去即是答案。
AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    int t;
    cin>>t;
    int Case=0;
    while(t--){
        ll n;
        cin>>n;
        ll ans=n-(ll)sqrt(n)-(ll)sqrt(0.5*n);
        cout<<"Case "<<++Case<<": "<<ans<<"\n";
    }
    return 0;
}

惊呆了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值