ArcTan

dfs
随笔 - 16, 文章 - 117, 评论 - 6, 引用 - 0
数据加载中……

ural-1049(质因子分解)

http://acm.timus.ru/problem.aspx?space=1&num=1049

质因子分解:题意明显,注意如果全部相乘会很大,所以得一个一个质因子分解然后做乘法,一边乘最好一边模10,以免溢出:
#include<stdio.h>
#include
<string.h>
#include
<math.h>
int prime[5000],f[10010],tot;
int main()
{
    
int i,j,t,ans;
    memset(f,
0,sizeof(f));
    f[
1]=1;
    i
=1;tot=0;
    
while (i<10000)
    {
        
while (f[i]&&i<10000)    i++;
        t
=i;
        tot
++;
        prime[tot]
=i;
        
while (t<10000)
        {
            f[t]
=1;
            t
=t+i;
        }
    }

    tot
--;

    memset(f,
0,sizeof(f));
    
for (i=1;i<=10;i++)
    {
        scanf(
"%d",&t);
        j
=1;
        
while (t>1&&j<=tot)
        {
            
while (t%prime[j]==0)
            {
                t
=t/prime[j];
                f[j]
++;
            }
            j
++;
        }
    }
    ans
=1;
    
for (i=1;i<=tot;i++)
        
if (f[i])
            ans
=(ans*(f[i]+1));
    printf(
"%d\n",ans);
    
return 0;
}
质因子分解当然筛法嘛,没得说。smy sb写了好几个程序我就只给他改了一点点就ac了,不写程序不行啊,不敲代码的弱爆了!

posted on 2012-03-11 11:45 wangs 阅读(260) 评论(0)  编辑 收藏 引用 所属分类: ACM-201203


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