zoukankan      html  css  js  c++  java
  • SDUT 3257 Cube Number 简单数学

    把所有数的立方因子除去,那么一个数可以和它组成立方的数是确定的,统计就行

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long LL;
    const int N=1e6+5;
    const int INF=0x3f3f3f3f;
    int vis[N],prime[1005],cnt;
    void getprime(){
      bool v[1020];
      memset(v,0,sizeof(v));
      for(int i=2;i*i<=1000;++i){
        if(v[i])continue;
        for(int j=i*i;j<=1000;j+=i)
          v[j]=1;
      }
      for(int i=2;i<=1000;++i)
        if(!v[i])prime[++cnt]=i;
    }
    int main(){
        int T,n;
        getprime();
        // printf("%d
    ",cnt);
        scanf("%d",&T);
        while(T--){
          memset(vis,0,sizeof(vis));
          scanf("%d",&n);
          LL ans=0;
          for(int i=1;i<=n;++i){
            LL t,t1;scanf("%lld",&t),t1=t,t=1;
            LL aim=1;bool flag=0;
            for(int j=1;j<=cnt&&prime[j]<=t1/prime[j];++j){
                int tmp=0;
                while(t1%prime[j]==0)t1/=prime[j],++tmp;
                if(tmp%3==1){
                  t*=prime[j];
                  aim*=prime[j];
                  if(aim>N-5)flag=1;
                  aim*=prime[j];
                  if(aim>N-5)flag=1;
                }
                else if(tmp%3==2){
                  t*=prime[j]*prime[j];
                  aim*=prime[j];
                  if(aim>N-5)flag=1;
                }
            }
            if(!flag){
              if(t1>1){
                t*=t1;
                aim*=t1;
                if(aim>N-5)flag=1;
                aim*=t1;
                if(aim>N-5)flag=1;
              }
              if(!flag)ans+=vis[aim];
            }
            ++vis[t];
          }
          printf("%lld
    ",ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    angular js 删除及多条删除
    angular js 页面修改数据存入数据库
    angular js 页面添加数据保存数据库
    angular js 分页
    内置函数和匿名函数
    装饰器,迭代器,生成器
    函数的进阶
    函数
    文件操作
    列表,字典
  • 原文地址:https://www.cnblogs.com/shuguangzw/p/5527959.html
Copyright © 2011-2022 走看看