Bài tập  /  Bài đang cần trả lời

Viết chương trình nhập một số tự nhiên n có k chữ số (2 < k < 7)

Viết chương trình nhập một số tự nhiên n có k chữ số (2 < k < 7). In ra màn hình:
+ Số lượng các ước dương của n;
+ Số chữ số của n;
+ Chữ số lớn nhất của n;
+ Số lớn nhất có k chữ số được sắp xếp bởi k chữ số của n;
Ví dụ: Với n = 7168; thì in ra kết quả: - 7168 co 22 uoc
- 7168 co 4 chu so
- Chu so lon nhat cua 7168 la 8
- So lon nhat la: 8761
2 trả lời
Hỏi chi tiết
287
Tham khảo câu trả lời từ Trợ lý ảo Lazi
```python
n = int(input("Nhập số tự nhiên n có k chữ số (2 < k < 7): "))
k = len(str(n))

# Số lượng ước dương của n
count = 0
for i in range(1, n+1):
if n % i == 0:
count += 1
print(f"{n} có {count} ước")

# Số chữ số của n
print(f"{n} có {k} chữ số")

# Chữ số lớn nhất của n
max_digit = max(str(n))
print(f"Chữ số lớn nhất của {n} là {max_digit}")

# Số lớn nhất có k chữ số được sắp xếp bởi k chữ số của n
max_num = int("".join(sorted(str(n), reverse=True)))
print(f"Số lớn nhất là: {max_num}")
```

Kết quả:
```
Nhập số tự nhiên n có k chữ số (2 < k < 7): 7168
7168 có 22 ước
7168 có 4 chữ số
Chữ số lớn nhất của 7168 là 8
Số lớn nhất là: 8761
```
3
0
manh
29/02 19:27:50
+5đ tặng
program SoTuNhien;

uses
  SysUtils;

var
  n, k, i, digit, maxDigit, maxNumber: integer;
  divisorCount: integer;

function DemSoChuSo(n: integer): integer;
begin
  Result := Trunc(Log10(n)) + 1;
end;

function DemUocDuong(n: integer): integer;
var
  i: integer;
begin
  Result := 0;
  for i := 1 to n do
  begin
    if n mod i = 0 then
      Result := Result + 1;
  end;
end;

begin
  repeat
    Write('Nhap so tu nhien n co k chu so (2 < k < 7): ');
    Readln(n);
    k := DemSoChuSo(n);
  until (k > 2) and (k < 7);

  divisorCount := DemUocDuong(n);

  maxDigit := 0;
  while n > 0 do
  begin
    digit := n mod 10;
    if digit > maxDigit then
      maxDigit := digit;
    n := n div 10;
  end;
  maxNumber := 0;
  for i := 1 to k do
    maxNumber := maxNumber * 10 + maxDigit;

  Writeln('So luong cac uoc duong cua n: ', divisorCount);
  Writeln('So chu so cua n: ', k);
  Writeln('Chu so lon nhat cua n: ', maxDigit);
  Writeln('So lon nhat co k chu so duoc sap xep boi cac chu so cua n: ', maxNumber);
end.
 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
4
0
quangcuongg
29/02 19:42:53
+4đ tặng
program Main;

uses
  SysUtils;

var
  n, temp, chuSo, maxChuSo, soMax: Integer;
  soUoc, soChuSo: Integer;

function DemUoc(num: Integer): Integer;
var
  i: Integer;
begin
  DemUoc := 0;
  for i := 1 to num do
  begin
    if num mod i = 0 then
    begin
      Inc(DemUoc);
      writeln('Uoc: ', i);
    end;
  end;
end;

function TimChuSoMax(num: Integer): Integer;
var
  maxChuSo: Integer;
begin
  maxChuSo := 0;
  while num > 0 do
  begin
    chuSo := num mod 10;
    if chuSo > maxChuSo then
      maxChuSo := chuSo;
    num := num div 10;
  end;
  TimChuSoMax := maxChuSo;
end;

function SapXepSoMax(num: Integer; chuSo: Integer): Integer;
var
  i, j, maxIndex: Integer;
  mangSo: array[1..6] of Integer; 
  soMax: Integer;
begin
  soMax := 0;
  for i := 1 to chuSo do
  begin
    mangSo[i] := num mod 10;
    num := num div 10;
  end;

  for i := 1 to chuSo - 1 do
  begin
    maxIndex := i;
    for j := i + 1 to chuSo do
    begin
      if mangSo[j] > mangSo[maxIndex] then
        maxIndex := j;
    end;
    temp := mangSo[i];
    mangSo[i] := mangSo[maxIndex];
    mangSo[maxIndex] := temp;
  end;

  for i := 1 to chuSo do
    soMax := soMax * 10 + mangSo[i];

  SapXepSoMax := soMax;
end;

begin
  repeat
    writeln('Nhap so nguyen n (2 < k < 7): ');
    readln(n);
  until (n >= 10) and (n < 1000000);

  if n = 0 then
  begin
    writeln('0 co 0 uoc');
    writeln('0 co 1 chu so');
    writeln('Chu so lon nhat cua 0 la 0');
    writeln('So lon nhat la: 0');
  end
  else
  begin
    soUoc := DemUoc(n);
    writeln(n, ' co ', soUoc, ' uoc');

    soChuSo := Length(IntToStr(n));
    writeln(n, ' co ', soChuSo, ' chu so');

    maxChuSo := TimChuSoMax(n);
    writeln('Chu so lon nhat cua ', n, ' la ', maxChuSo);

    soMax := SapXepSoMax(n, soChuSo);
    writeln('So lon nhat la: ', soMax);
  end;
end.
 

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo