E - Sigma Function【數學】【規律】

題目鏈接:https://vjudge.net/contest/333800#problem/E
題目大意:根據唯一分解定理,計算[1,n][1,n]約數是偶數的個數。
思路:被數據範圍演了,打表找規律即可。
我們發現:一個數是平方數的話約數和就是奇數(直接開方向下取整);一個數包含2的奇數次方的約數和也是奇數(除2之後直接開方向下取整),所以用nn減去即是答案。
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;
}

驚呆了吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章