merging dua II audio interface_power of one

merging dua II audio interface_power of one题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=6623MinimalPowerofPrimeTimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):1935AcceptedSub…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=6623
Minimal Power of Prime

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1935 Accepted Submission(s): 437

Problem Description
You are given a positive integer n > 1. Consider all the different prime divisors of n. Each of them is included in the expansion n into prime factors in some degree. Required to find among the indicators of these powers is minimal.

Input
The first line of the input file is given a positive integer T ≤ 50000, number of positive integers n in the file. In the next T line sets these numbers themselves. It is guaranteed that each of them does not exceed 10^18.

Output
For each positive integer n from an input file output in a separate line a minimum degree of occurrence of a prime in the decomposition of n into simple factors.

Sample Input

5
2
12
108
36
65536

Sample Output

1
1
2
2
16

这道题题意是 ,几个素数的几次幂相乘,求最小的幂。
比如108=4*27=22*33,min=2;
那先打一个素数表求出1-4000的素数个数,由于数有1018,
要是没除尽的话,因子最多也就4个了,所以幂数大于1的情况有p14,p13, p12 , p12*p22,
Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const double eps=1e-5;
int P4 ( ll x )
{
    ll l=floor(pow( x, 1.0/4 )+eps);
    ll sum = l*l*l*l;
    return sum==x;
}
int P3 ( ll x )
{
    ll l=floor(pow( x, 1.0/3 )+eps);
    ll sum = l*l*l;
    return sum==x;
}
int P2 ( ll x )
{
    ll l=floor(pow( x, 1.0/2 )+eps);
    ll sum = l*l;
    return sum==x;
}
int isprime[4010];
int primes[4010],len;
void get_prime()
{
    len = 0;
    memset(isprime,true,sizeof(isprime));
    isprime[0] = false;
    isprime[1] = false;
    for( int i=2 ; i<4010 ; i++ )
    {
        if( isprime[i] )
            primes[len++] = i;
        for( int j=0 ; j<len ; j++ )
        {
            if( i*primes[j]>=4010 )
                break;
            isprime[i*primes[j]]=false;
            if( i%primes[j]==0 )
                break;
        }
    }
}

int main()
{
    get_prime();
    int repeat;
    cin>>repeat;
    while(repeat--)
    {
        ll n;
        cin>>n;
        int ans = 100;
        for( int i=0; i<len; i++ )
        {
            if(n<primes[i])
                break;
            if(n%primes[i]==0)
            {
                int tmp=0;
                while(n%primes[i]==0)
                {
                    n/= primes[i];
                    tmp++;
                }
                ans=min(ans,tmp);
            }
        }
        if( n==1 )
        {
            printf("%d\n",ans);
        }
        else
        {
            if(ans>4&&P4(n))
            {
                printf("4\n");
            }
            else if(ans>3&&P3(n))
            {
                printf("3\n");
            }
            else if(ans>2&&P2(n))
            {
                printf("2\n");
            }
            else
            {
                printf("1\n");
            }
        }
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192994.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu 18.04 安装 PyCharm[通俗易懂]

    Ubuntu 18.04 安装 PyCharm[通俗易懂]部分摘抄自:https://blog.csdn.net/zhuanshu666/article/details/735548851.下载PyCharm安装包1)进入PyCharm官网,选择Professional专业版,直接点击DOWNLOAD,如图1;…

    2022年6月27日
    34
  • 《前端运维》一、Linux基础–01基础命令与vim

    在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器。百度一下足够了,但是还是要贴一下这系列文章中,我所使用的服务

    2022年3月25日
    37
  • Mac 安装配置抓包工具Charles「建议收藏」

    Mac 安装配置抓包工具Charles「建议收藏」     本文主要介绍mac下如何安装网络抓包工具以及如何实现抓包。在windows下有一款不错的抓包工具Fidder,但是由于是C#编写的,无法再mac下运行,因此,需要换一款抓包软件:Charles。  Charles是一款Java语言编写的抓包工具,因此可以跨平台使用,可以在win/linux下使用,java编写的当然需要安装jdk了。同时还有一个问题,就是收费的,50美刀,折合…

    2022年6月1日
    34
  • ARM机器使用netdata监控

    ARM机器使用netdata监控ARM 机器使用 netdata 监控安装下载地址 https github com netdata netdata releases 找到对应平台的版本下载此处使用了 netdata aarch64 latest gz run 下载下来直接 shnetdata aarch64 latest gz run 进行安装 安装完成之后 可以通过在浏览器中访问 http your server ip 19999 查看 Netdata 的监控 如果不可以查看 请查看防火墙设置 查看状态 停止 重启 systemc

    2025年6月23日
    2
  • HADOOP生态圈以及各组成部分的简介

    HADOOP生态圈以及各组成部分的简介HADOOP生态圈以及各组成部分的简介1各组件简介重点组件:HDFS:分布式文件系统MAPREDUCE:分布式运算程序开发框架HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具HBASE:基于HADOOP的分布式海量数据库ZOOKEEPER:分布式协调服务基础组件Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库Oozie…

    2022年5月21日
    49
  • 微信小程序 父子组件传值通信

    微信小程序 父子组件传值通信微信小程序父组件往子组件传值:父:&lt;getCodephone="{{phone}}"bind:myevent="onGetCode"&gt;&lt;/getCode&gt;通过phone=”{{phone}}”传向子组件子:properties:{phone:{//属性名type:Number,…

    2022年5月17日
    120

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号