码迷,mamicode.com
首页 > 其他好文 > 详细

xdu2017校赛F

时间:2017-04-24 13:16:37      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:index   its   div   bsp   格式   define   ace   false   out   

Problem F Dogs of Qwordance Senior Backend R&D Engineers
问题描述
那年夏天,锘爷和杰师傅漫步在知春公园的小道上。他们的妻子、孩子牵 着狗在前面嬉戏,二人笑语盈盈,他们不深究一个小的编程问题,而是对整个 Qwordance (四字舞蹈)公司的发展前景加以描绘。这样的场景,想想就觉得好 美,想想就好向往,想想就好激动。然而,他们的狗觉得这非常的无聊,决定自 己去玩。 杰师傅的狗非常挑剔。它希望找到一块面积为 x 的长方形广场,还要求广 场的长和宽都是整数。锘爷的狗不屑地说:“这还不简单,总共有 σ0(x) 种方案 呢。”杰师傅的狗却摇了摇头说:“找到这个广场后,我们要在上面画上水平和垂 直的网格,使得水平、垂直网格之间的间距分别是相同的整数。算了这太难了, 我们去听他们讨论 Qwordance 未来发展大方向吧。”锘爷的狗说:“这也不难啊, 总共有,咦,多少方案啊?”杰师傅的狗鄙视道:“你看你连个方案数都算不出, 我不要和你玩了。像你这样的狗在朝鲜是会被做成狗肉火锅的。你走吧。”锘爷 的狗想去问锘爷的儿子(中关村小学生信息学竞赛冠军),然而怕被小主人嘲笑, 请你帮帮它吧。
输入格式 输入包含多组数据(最多 450 组),请处理到文件结束。
每组数据包含一个整数,即 x 。 对于所有数据有 1 ≤ x ≤ 1012。
输出格式 对于每组数据输出 1 行,包含面积为 x 的广场的方案数。
只要广场的长或 宽不同,或网格划分方案不同,就是不同的方案(见样例解释)。
输入输出样例 输入样例 输出样例
1 4
1 10

 

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define N 1000002
 5 int prime[N+3],p;
 6 ll n;
 7 bool is_prime[N+3];
 8 int index[N+3];
 9 void sieve(){
10     p=0;
11     for(int i=0;i<N;i++){
12         is_prime[i]=true;
13     }
14     is_prime[0]=is_prime[1]=false;
15     for(int i=2;i<N;i++){
16         if(is_prime[i]){
17             prime[p++]=i;
18             for(int j=2*i;j<N;j+=i){
19                 is_prime[i]=false;
20             }
21         }
22     }
23 }//埃筛 
24 /*void sieve(){
25     is_prime[1]=1;
26     for(ll i=2;i<N;++i){
27         if(!is_prime[i])prime[p++]=i;
28         for(ll j=0;j<p&&prime[j]*i<N;++j){
29             is_prime[prime[j]*i]=1;
30             if(i%prime[j]==0)break;
31         }
32     }
33 }*/
34 //线性筛 
35 
36 int main(){
37     ios::sync_with_stdio(false);
38     sieve();
39     while(cin>>n){
40         ll ans=1;
41         for(int i=0;1ll*prime[i]*prime[i]<=n;i++){
42             if(n%prime[i]==0){
43                 ll index=0,part=0;
44                 while(n%prime[i]==0){
45                     n/=prime[i];
46                     index++;
47                 }
48                 for(ll j=0;j<=index;j++) part+=(j+1)*(index-j+1);
49                 ans*=part;
50             }
51         }if(n!=1) ans*=4;
52         cout<<ans<<endl;
53     }
54     return 0;
55 }

 

xdu2017校赛F

标签:index   its   div   bsp   格式   define   ace   false   out   

原文地址:http://www.cnblogs.com/elpsycongroo/p/6756323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!