Easy Problem


Submit solution

Points: 3 (partial)
Time limit: 1.0s
Memory limit: 977M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Hmmm

Sang năm mới, Han được mẹ mua tặng 1 chiếc máy tính bỏ túy Casio FX570 VN Plus khiến Han rất thích thú

Trong 1 bài toán tính căn bậc 2 đơn giản, Han rất hứng thú và vì là 1 Lập Trình Viên nên Han mong muốn thử code cách giải các bài toán này!

Bạn hãy giúp Han giải bài toán trên nhé

*Input

  • Dòng đầu tiên là: N - là số test (1 <= N <= 3000)

  • N dòng tiếp theo lần lượt là 1 số nguyên X (1 <= X <= 10^9)

Output

Gồm N dòng là kết quả sau khi rút gọn căn bậc 2 của X trên từng dòng!

VD

Input:

2
8
10

Output:

2 2
1 10

Giải thích: ta rút gọn căn bậc 2 của 8 thành 2 căn 2


Comments


  • 1
    Nguyễn_Tuấn_Đạt_CNTT2_K64  commented on May 23, 2024, 10:04 a.m.

    tham khao nhaa!

    #include<stdio.h>
    #include<math.h>
    long long phi(long long x){
        for(long long int i=2;i*i<=x;i++){
            if(x%i==0){
                int cnt=0;
                long long a=x;
                while(a%i==0){
                    a/=i;
                    cnt++;
                }
                x=a;
                if(cnt%2!=0){
                    x=a*i;
                }
            }
        }
        return x;
    }
    main(){
        long long n,x;
        scanf("%lld",&n);
        for(int i=0;i<n;i++){
            scanf("%lld",&x);
            long long b=phi(x);
            long long a=sqrt(x/b);
            printf("%lld %lld\n",a,b);
        }
    }

  • 0
    LaHongPhuc_CNTTVA_k62  commented on Nov. 17, 2021, 2:56 p.m. edited

    include<stdio.h>

    include<math.h>

    int main(){ int n,a[50]; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } for(int i=0;i<n;i++){ int sum=1; for(int j=2;j<=(float)sqrt(a[i]);j++){ while(a[i]%(jj)==0){ sum=j; a[i]/=(j*j);
    }
    } printf("%d %d\n",sum,a[i]); } return 0; } xem ho minh huong giai voi a


  • 0
    thien201206512CNTT4K61  commented on Aug. 29, 2021, 1:15 p.m. edited
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long n, t, i, a[n];
        cin>>n;
        for(i=0; i<n; i++)
            cin>>a[i];
        for(i=0; i<n; i++)
        {
            t=1;
            while(a[i]%4==0)
            {
                t *= 2;
                a[i] /= 4;
            }
            cout<<t<<" "<<a[i]<<endl;
        }   
    }

    // code e sai đâu vậy ạ


    • 0
      shioiori  commented on Sept. 25, 2021, 12:19 p.m.

      bạn sai ngay từ thuật toán rồi


  • 1
    trungvt130584  commented on May 1, 2020, 2:30 p.m.

    Em cũng có thắc mắc giống như anh TICHPX đấy.


    • 3
      TICHPX  commented on May 2, 2020, 2:37 a.m.

      Xuất ra 1 x nhé mình bổ sung thêm ví dụ rồi


  • 1
    TICHPX  commented on April 30, 2020, 2:54 p.m.

    Trong trường hợp ko rút gọn đươc thì xuất ra x Hay 1 x