zoukankan      html  css  js  c++  java
  • hdu 3826

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3826

    思路:如果存在某个大于10^6的质因子,那么顶多存在两个,不然就超longlong了,所以在允许的范围内解决问题还是蛮简单的

    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    #define maxn 1000010
    bool vis[maxn];
    int n_prime=0;
    int prime[78510];
    int cnt[78510];
    void Prime()
    {
        memset(vis,true,sizeof(vis));
        vis[0]=vis[1]=false;
        for(int i=2;i<maxn;i++)
            if(vis[i])
            {
                prime[++n_prime]=i;
                for(int j=2*i;j<maxn;j+=i)
                    vis[j]=false;
            }
        //cout<<n_prime<<":"<<prime[n_prime]<<endl;
    }
    bool is_square(long long n)
    {
        long long tmp=sqrt(n);
        if(tmp*tmp==n)
            return true;
        return false;
    }
    int main()
    {
        Prime();
        int t;
        cin>>t;
        long long n;
        for(int cas=1;cas<=t;cas++)
        {
            cin>>n;
            cout<<"Case "<<cas<<": ";
            memset(cnt,0,sizeof(cnt));
            int tag=0;
            for(int i=1;i<=n_prime;i++)
            {
                if(n<prime[i])
                    break;
                if(n%prime[i]==0)
                {
                    while(n%prime[i]==0)
                    {
                        n/=prime[i];
                        cnt[i]++;
                    }
                }
                if(cnt[i]>=2)
                {
                    tag=1;
                    break;
                }
            }
            if(n!=1)
            {
                if(is_square(n))
                    tag=1;
            }
            if(tag)
                cout<<"No"<<endl;
            else
                cout<<"Yes"<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    竞赛题解
    学习笔记
    竞赛题解
    学习笔记
    竞赛题解
    竞赛题解
    竞赛题解
    「链接」原博客链接
    「杂录」THUWC 2020 游记
    「杂录」CSP-S 2019 爆炸记&题解
  • 原文地址:https://www.cnblogs.com/overflow/p/3215368.html
Copyright © 2011-2022 走看看