上午

T1 立方数

题目描述

LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。

现在给定一个数P,LYK想要知道这个数是不是立方数。

当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~

输入输出格式

输入格式:

 

第一行一个数T,表示有T组数据。

接下来T行,每行一个数P。

 

输出格式:

 

输出T行,对于每个数如果是立方数,输出“YES”,否则输出“NO”。

 

输入输出样例

输入样例#1: 
3
8
27
28
输出样例#1: 
YES
YES
NO

说明

对于30%的数据p<=100。

对于60%的数据p<=10^6。

对于100%的数据p<=10^18,T<=100。

 

题解:枚举10^6/二分。

代码:二分0ms,枚举540ms

#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;

int t;
LL x;

LL read(){
    LL x=0,f=1;char ch=getchar();
    for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
    for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';
    
}

bool check(LL x){
    for(int i=1;;i++){
        if(1LL*i*i*i==x)return true;
        if(1LL*i*i*i>x)return false;
    }
}

int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%lld",&x);
        if(check(x))printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}
枚举

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
  • 2021-07-16
  • 2021-10-03
  • 2021-07-25
猜你喜欢
  • 2022-12-23
  • 2021-09-28
  • 2021-08-26
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案