我叫张小黑
张小黑的挣扎生活
posts - 66,  comments - 109,  trackbacks - 0

一道数学题。弱弱不会做。。

开始一直钻牛角尖。。用暴力把数据跑了一下。然后找规律。。发现好像是找n的互质的质因数对数。。
小的数据用手算是可以算出来的。。但是不知道怎么用程序来算。。

后面参考pc的。。。。知道了是怎么回事。。
我想以后如果有需要求质因数对数的个数。。可以用这种方法反过来求。。

下面是代码:

#include<iostream>
int N;
int solve(int N)
{
    
int i,ans=1,t;
    
for(i=2;i*i<=N;i++)
    {
        t
=0;
        
while(!(N%i))
        {
            t
++;
            N
/=i;
        }
        ans
*=2*t+1;
    }
    
if(ans==1||N!=1)ans*=3;
    return ans;
}
int main()
{
    
int T,cas,id;
    scanf(
"%d",&T);
    
for(cas=1;cas<=T;cas++)
    {
        scanf(
"%d",&N);
        id
=solve(N);
        
if(N==1)id=1;
        printf(
"Scenario #%d:\n%d\n\n",cas,(id+1)/2);
    }
    return 
0;
}
posted on 2008-07-09 10:41 zoyi 阅读(437) 评论(1)  编辑 收藏 引用 所属分类: acm数学

FeedBack:
# re: pku 2917 Diophantus of Alexandria
2008-08-13 07:00 | ecnu_zp
“我想以后如果有需要求质因数对数的个数。。可以用这种方法反过来求。。”
--什么意思呢。。。。
o(∩_∩)o...
数学是王道啊..   回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


欢迎光临 我的白菜菜园

<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(8)

随笔分类

随笔档案

文章档案

相册

acmer

online judge

队友

技术

朋友

搜索

  •  

最新评论

阅读排行榜

评论排行榜