Trang chủ Tin Học Lớp 9 Cho số nguyên dương n. Hãy viết chương trình tìm...

Cho số nguyên dương n. Hãy viết chương trình tìm ước số lớn nhất của n mà khác 1 và chính nó. Input Dòng thứ nhất chứa số T(1T70) - Thể hiện số lượng test case

Câu hỏi :

Cho số nguyên dương n. Hãy viết chương trình tìm ước số lớn nhất của n mà khác 1 và chính nó. Input Dòng thứ nhất chứa số T(1T70) - Thể hiện số lượng test case. T dòng tiếp theo, mỗi dòng chứa số nguyên n. (1 n 10^14). Output Ứng với mỗi testcase, in ra đáp án cần tìm (nếu không có đáp án thì in ra 1).

Lời giải 1 :

EDIT: Thêm ảnh

//

//  main.cpp

//  maxdivisor

//

//  Created by Duc Nhat Nguyen on 23/08/2022.

//

#include <iostream>

#include <math.h>

unsigned long long n;

unsigned long long first_div;

bool prime(unsigned long long x) {

    if (x < 2) return false;

    if (ceil(sqrt(x)) == floor(sqrt(x))) return false;

    for (unsigned long long i = 2; i * i <= x; i++) {

        if (x % i == 0) {

            first_div = i;

            return false;

        }

    }

    return true;

}

void process() {

    std::cin >> n;

    if (n % 2 == 0 && n != 2) {

        std::cout << n / 2 << "\n";

        return;

    }

    first_div = n;

    if (prime(n) || n == 1) {

        std::cout << -1 << "\n";

        return;

    }

    unsigned long long max = std::max(n / first_div, (unsigned long long)sqrt(n));

    std::cout << max << "\n";

}

int main(int argc, const char * argv[]) {

    std::ios_base::sync_with_stdio(0);

    std::cin.tie(0);

    std::cout.tie(0);

    

    int t;

    std::cin >> t;

    while (t--) { process(); }

    

    return 0;

}

image

Thảo luận

-- sorry giờ mới vote được ạ

Lời giải 2 :

program bestanhvan;
uses crt;
var n,i,j,max  :int64;
a:array[1..100] of int64;
begin
    read(n);
    max:=-1;
    for i:=1 to n do read(a[i]);
    for i:=1 to n do
    begin
        if (a[i]=1) or (a[i]=2) then
               writeln('-1')
        else
        begin
            for j:=2 to a[i]-1 do 
                if (a[i] mod j =0) and (a[i] > max) then max:=j;
                writeln(max);
        end;
        max:=-1;
    end;
    readln;
    end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, sắp phải bước vào một kì thi căng thẳng và sắp chia tay bạn bè, thầy cô và cả kì vọng của phụ huynh ngày càng lớn mang tên "Lên cấp 3". Thật là áp lực nhưng các em hãy cứ tự tin vào bản thân là sẻ vượt qua nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK