Trang chủ Tin Học Lớp 8 Tìm các ước số nguyên tố của một số nguyên...

Tìm các ước số nguyên tố của một số nguyên dương N cho trước. Dữ liêu vào: Từ file văn bản UOCNT.INP chứa một số nguyên dương. Kết quả: Ghi ra file văn bản UOC

Câu hỏi :

Tìm các ước số nguyên tố của một số nguyên dương N cho trước. Dữ liêu vào: Từ file văn bản UOCNT.INP chứa một số nguyên dương. Kết quả: Ghi ra file văn bản UOCNT.OUT các ước số nguyên tố của số N đó, mỗi số cách nhau ít nhất một dấu cách.

Lời giải 1 :

uses crt;
var f,f1:text;
        n,i:longint;
        scan:boolean;
begin
        clrscr;
        assign(f,'UOCNT.INP'); reset(f);
        assign(f1,'UOCNT.OUT'); rewrite(f1);
        readln(f,n);
        scan:=false;
        if n<2 then scan:=false;
        for i:=2 to trunc(sqrt(n)) do if n mod i=0 then scan:=false;
        scan:=true;
        if n=0 then write('Co vo so uoc nguyen to')
        else
                i:=2;
                for i:=2 to n-1 do
                        begin
                                if n mod i=0 then write(f1,i,' ');
                        end;
        close(f);
        close(f1);
        readln;
end.

Thảo luận

Lời giải 2 :

uses crt;
var A: array [1..1000] of longint;
 i, N,dem: longint;
 f: text;
// hàm kiemtra có tác dụng check có phải là số nguyên tố hay không
function kiemtra(n: longint): boolean;
 var i: longint;
 begin
  if (n <= 1) then kiemtra:= false
  else if (n < 4) then kiemtra:= true
   else
    begin
     kiemtra:= true; i:= 2;
     while (i <= sqrt(n)) do
      begin
       if (n mod i = 0) then 
        begin
         
         kiemtra:= false;
         break;
        end;
       i := i + 1;
      end;
    end;
 end;


procedure input();
 begin
  assign(f,'UOCNT.INP'); reset(f);
  read(f,N); close(f);
 end;

procedure output();
 begin
  assign(f,'UOCNT.OUT'); rewrite(f);
  for i:= 1 to dem do 
   write(f,A[i],' ');
  close(f);
 end;

begin
 input(); dem := 0;
 // ngoài cách duyệt từng phần tử còn có thể dùng sàng nguyên tố (có thể tự tìm trên Google)
 for i:= 2 to N do
  if ((N mod i = 0) and kiemtra(i)) then 
   begin
    dem:= dem + 1;
    A[dem] := i;
   end;
 output();
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ự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe 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