zoukankan      html  css  js  c++  java
  • uva10892(暴力枚举)

    把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,ans);
        }
        //fclose(stdin);
        //fclose(stdout);
        return 0;
    }
  • 相关阅读:
    PHP时间操作
    php实用正则
    PHP正则表达式函数
    PHP常用字符串函数
    PHP数组简单操作
    PHP基础-自定义函数-变量范围-函数参数传递
    PHP常量的定义和用法
    Ajax用法
    DBCP连接池和事物
    ltp-ddt emmc_dd_rw
  • 原文地址:https://www.cnblogs.com/zywscq/p/3945848.html
Copyright © 2011-2022 走看看