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

uva10892(暴力枚举)

时间:2014-08-29 23:52:28      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   div   代码   log   

把n的所有因子求出来,总数不会太多,所以直接O(n2)的暴力枚举所有对行不行。

有几个细节要注意,详见代码。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
#define INF 1000000000
#define eps 1e-8
#define pii pair<int,int>
#define LL long long int
LL n;
LL ans;
LL a[5000];
LL gcd(LL a,LL b){return b==0?a:gcd(b,a%b);}
int main()
{
    //freopen("in6.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    while(scanf("%lld",&n)&&n)
    {
        int k=0,tn=sqrt(n);
        ans=0;
        for(int i=1;i<=tn;i++)
        {
            if(n%i==0)
            {
                a[k++]=i;
                if((n/i)!=i)//这一句没加WA了一次
                a[k++]=n/i;
            }
        }
        for(int i=0;i<k;i++)
        {
            for(int j=i;j<k;j++)//注意是从i开始枚举j,这样避免重复
            {
                if(gcd(a[i],a[j])*n==a[i]*a[j])//注意这么乘起来可能超int,所以都开成LL
                {
                    ans++;
                }
            }
        }
        printf("%lld %lld\n",n,ans);
    }
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}

 

uva10892(暴力枚举)

标签:style   blog   color   os   io   for   div   代码   log   

原文地址:http://www.cnblogs.com/zywscq/p/3945848.html

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