【bzoj4459】JSOI2013丢番图

某JSOI夏令营出题人啊,naive!

你还是得学习个,搬这种原题不得被我一眼看穿?

求个n^2的约数除以二,向上取整。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n=0,ans=1;int cur=0;
int main(){
    cin>>n;
    for(int i=2;1LL*i*i<=n;i++){
        if(n%i==0){
            cur=0;
            while(n%i==0)cur++,n/=i;
            ans*=(cur<<1|1);
        }
    }
    if(n>1)ans*=3;
    cout<<((ans+1)>>1);
}
//JSOI 2013
//Naive

 

posted @ 2017-07-08 09:46  zcysky  阅读(322)  评论(0编辑  收藏  举报