DK05 - Kiểm tra số chính phương

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Số chính phương là số tự nhiên mà căn bậc hai của nó là một số tự nhiên. Hoặc nói ngược lại, số chính phương là số bằng bình phương của một số tự nhiên. Nhiệm vụ của bạn là viết chương trình kiểm tra một số nguyên ~n~ nhập vào từ bàn phím có phải là số chính phương hay không?

Input

Số nguyên ~n~ cần kiểm tra có phải số chính phương hay không

Giới hạn

  • ~-10^{12} \le n \le 10^{12}~

Output

Kết quả kiểm tra số chính phương. Nếu số kiểm tra là số chính phương, in ra "YES", ngược lại in ra "NO". Kết quả in ra không có dấu nháy kép

Sample

Input #1
9
Output #1
YES

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    ngvanluan  đã bình luận lúc 29, Tháng 4, 2024, 0:35

    code c++ không dùng hàm có sẵn

    #include <iostream>
    using namespace std;
    int main()
    {
      long long n;
      long long i = 0;
      cin >> n;
      if (n < 0)
      {
        cout << "NO";
      }
      else
      {
        while (1)
        {
          if (i * i == n)
          {
            cout << "YES";
            break;
          }
          else if (i * i > n)
          {
            cout << "NO";
            break;
          }
    
          else
          {
            ++i;
          }
        }
      }
      return 0;
    }
    

  • 1
    tuilahieu  đã bình luận lúc 17, Tháng 2, 2024, 19:57

    Python có thể dùng ** 0.5 thay cho sqrt

    a = int(input())
    if a < 0 or int(a ** 0.5) ** 2 != a:
        print("NO")
    else:
        print("YES")
    

  • 3
    hohoanghai5042011  đã bình luận lúc 15, Tháng 2, 2024, 7:54

    include <bits/stdc++.h>

    using namespace std; long long n,s=0; int main() { cin>>n; s=sqrt(n); if(s*s==n) cout<<"YES"; else cout<<"NO"; return 0;

    }


  • 0
    DKN13  đã bình luận lúc 11, Tháng 1, 2024, 2:01

    import math

    x = float(input()) if x<0: print("NO") else: can = math.sqrt(x) y = int(can) if y*y==x: print("YES") else: print("NO")


  • 0
    hiiiii  đã bình luận lúc 7, Tháng 1, 2024, 15:41

    Dạ cho em hỏi là case test 2 là gì ạ.

    import math

    chinhphuong = int(input("")) if math.sqrt(chinhphuong) - math.sqrt(chinh_phuong) // 1 == 0: print("YES") else: print("NO")


    • 1
      DKN13  đã bình luận lúc 11, Tháng 1, 2024, 2:00

      test 2 là về phần số âm nha em phải kiểm tra trước có số âm không thì mới căn bậc 2 được.

      import math x = float(input()) if x<0: print("NO") else: can = math.sqrt(x) y = int(can) if y*y==x: print("YES") else: print("NO")


  • 1
    tronghieu123  đã bình luận lúc 7, Tháng 1, 2024, 2:30

    sos


  • 0
    BienLon8888  đã bình luận lúc 6, Tháng 1, 2024, 13:55

    Sao tôi lại bị sai test 3


    • 0
      nhuquynh  đã bình luận lúc 23, Tháng 1, 2024, 9:41

      chinh lai long long la duoc nha, ban dau minh cung sai nhu ban


  • 0
    hunghunghung  đã bình luận lúc 20, Tháng 12, 2023, 2:30

    include <stdio.h>

    include <math.h>

    using namespace std;

    long long int n,x; int main() { scanf("%lld",&n); x=sqrt(n); if(x*x==n) printf("YES"); else printf("NO"); }


    • 0
      Mechamaru  đã bình luận lúc 20, Tháng 12, 2023, 3:08

      gui code tap lam hao no ak hung


  • -1
    TQThong2k11  đã bình luận lúc 14, Tháng 12, 2023, 0:48

    include <bits/stdc++.h>

    using namespace std; long long n; int main(){ cin >> n; long long m = sqrt(n); if(m * m == n){ cout << "YES"; } else cout << "NO"; return 0; } code C++ nhé ^^


  • 0
    TQThong2k11  đã bình luận lúc 7, Tháng 12, 2023, 15:16

    include <bits/stdc++.h>

    using namespace std; long long n; int main(){ cin >> n; long long m = sqrt(n); if(m * m == n){ cout << "YES"; } else cout << "NO"; return 0; }


  • 0
    deno  đã bình luận lúc 7, Tháng 12, 2023, 14:01

    DENO :

    #include <stdio.h> #include <math.h> void scp(long long n){ long long a=sqrt(n); if(a*a==n){ printf("YES"); } else{ printf("NO"); } } int main(){ long long n; scanf("%lld",&n); scp(n); }


  • 0
    nhixuan  đã bình luận lúc 5, Tháng 12, 2023, 3:50

    nếu bị sai ở test 3 và test cuối hãy thử sửa như này xem: using System; using System.Numerics;

    class luyentap { static void Main(string[] args) { BigInteger n = BigInteger.Parse(Console.ReadLine()); BigInteger i=0; while (ii<=n){ if(ii==n){ Console.Write("YES"); return ; } ++i; } Console.Write("NO"); } }


  • 0
    Slow_Turtle2203  đã bình luận lúc 27, Tháng 11, 2023, 14:35

    include <bits/stdc++.h>

    define ll long long

    using namespace std;

    int main() { ll n; cin >> n; if (sqrt(n)==floor(sqrt(n))) cout << "YES"; else cout << "NO" ; }


  • 0
    tungkq123  đã bình luận lúc 27, Tháng 11, 2023, 11:40

    include<iostream>

    include<math.h>

    using namespace std;

    int main() { long long n; cin>>n; long long h=sqrt(n);

    if(h*h==n)
        cout<<"YES";
    else 
    cout<<"NO";
    

    } // moi nguoi ai bi sai thi xem thu code cua minh nhe


  • 0
    Konomi  đã bình luận lúc 22, Tháng 11, 2023, 21:53

    test 5 là j mọi người nhỉ


  • 1
    camapconnnnn  đã bình luận lúc 10, Tháng 11, 2023, 11:40

    ủa test 6 test j vậy mn sao dùng sqrt không ac test 6


  • -1
    camapconnnnn  đã bình luận lúc 8, Tháng 11, 2023, 13:27

    include <bits/stdc++.h>

    define ll long long int

    using namespace std;

    int main () { ll n; cin>>n; if (sqrt(n)*sqrt(n)==n) cout<<"YES"; else cout<<"NO"; }

    test 6sai la sao


  • 1
    taithikgirl  đã bình luận lúc 28, Tháng 10, 2023, 2:28

    hao no


  • 3
    taithikgirl  đã bình luận lúc 28, Tháng 10, 2023, 2:28

    hao no


  • 0
    hoangnghiahoa  đã bình luận lúc 26, Tháng 10, 2023, 16:07

    test 5 là gì vậy mọi người


  • -5
    glegleglegle  đã bình luận lúc 21, Tháng 10, 2023, 18:01

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    tuattsx3  đã bình luận lúc 17, Tháng 10, 2023, 10:46

    n = int(input()); if n<0:print('NO'); else: print('YES' if n**0.5%1==0 else 'NO')


  • 0
    Nga  đã bình luận lúc 16, Tháng 10, 2023, 10:35

    import java.util.Scanner; public class Luyencodemoingay { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n= sc.nextLong(); long can= (long)Math.sqrt(n); if (n>0){ if((long)can*can==n){ System.out.println("YES"); } else{ System.out.println("NO"); } }

    }
    

    } mn ơi em bị nào mà nó cứ wa


  • -5
    PalAgi  đã bình luận lúc 14, Tháng 10, 2023, 6:41

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -5
    huhu_tuingucode  đã bình luận lúc 13, Tháng 9, 2023, 1:11

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -1
    nguyenlehieuhoc  đã bình luận lúc 7, Tháng 9, 2023, 7:47

    import math n = int(input()) if n<0: print("NO",end='') else: cp = int(math.sqrt(n)) if cp**2== n: print ("YES",end='') else: print ("NO",end='')

    CODE DAY NE AE EASY GAME chỉ toàn sai nhe mọi ng đừng tin vào nguồn này nhe


  • -1
    nguyenlehieuhoc  đã bình luận lúc 7, Tháng 9, 2023, 7:46

    int(input()) if n<0: print("NO",end='') else: cp = int(math.sqrt(n)) if cp**2== n: print ("YES",end='') el


  • -1
    ngkhacbaolam2809  đã bình luận lúc 27, Tháng 8, 2023, 7:08

    long long khỏi bị tràn số


  • 1
    tognoek  đã bình luận lúc 22, Tháng 8, 2023, 16:53

    hướng dẫn chỉ có c/c++ nên mình thêm tý bên python3 ạ: math.sqrt sẽ trả về float nên chúng ta sửa là int(math.sqrt()) nha, lỗi mình gặp mình chia sẻ ạ.


  • -4
    phamnhatduc555  đã bình luận lúc 13, Tháng 8, 2023, 16:58

    import math n = int(input()) if n<0: print("NO",end='') else: cp = int(math.sqrt(n)) if cp**2== n: print ("YES",end='') else: print ("NO",end='')

    CODE DAY NE AE EASY GAME


    • -2
      changnguyen  đã bình luận lúc 21, Tháng 8, 2023, 12:14

      nếu cho n = 2 thì chương trình vẫn chạy sai thôi bạn,thêm điều kiện nữa nếu n = 2 thì in ra YES nhé


      • -1
        hd929  đã bình luận lúc 31, Tháng 10, 2023, 10:43

        Hai có phải là số chính phương đâu?


  • -2
    bihy  đã bình luận lúc 10, Tháng 8, 2023, 15:18

    nên làm cho người nộp xem test nha, chứ cứ nnay khbt sai ở đâu mà sửa ý admin


  • 0
    vqlong  đã bình luận lúc 1, Tháng 8, 2023, 15:21

    làm cách nào cũng không được :(( cuối cùng mình dùng chính code trên trang này để gửi mà vẫn báo sai https://blog.luyencode.net/kiem-tra-so-chinh-phuong/


    • -4
      Hieu Nguyen  đã bình luận lúc 2, Tháng 8, 2023, 0:23

      Bài này mai em quay lại sẽ có Editorial nhé.


  • -5
    tahm1302  đã bình luận lúc 27, Tháng 7, 2023, 2:44

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -1
      Thuznguyen  đã bình luận lúc 19, Tháng 8, 2023, 3:22

      mik sai ở test 3 thì sao bn :)))


      • 0
        codega  đã bình luận lúc 19, Tháng 8, 2023, 16:23

        kiểm tra code xem lưu về long long chưa nhé. giới hạn đến mũ 12 lưu int bị tràn số sai là phải


        • 1
          Thuznguyen  đã bình luận lúc 22, Tháng 8, 2023, 10:03

          thanh kiu nha mik bj tràn số thật :))


  • -4
    piecesmeow369  đã bình luận lúc 5, Tháng 7, 2023, 14:14

    ủa sao bài này em lại bị false v? rõ ràng là dùng y nguyên code cũ lúc trước accept r nhét vào nma lại bị sai


    • 4
      lek176234  đã bình luận lúc 8, Tháng 7, 2023, 17:15

      Giới hạn là 10^12 á bạn, bạn thử chỉnh đoạn đấy xem.