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ă

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.

0 bình luận về “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ă”

  1. 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ình luận
  2. 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.

    Bình luận

Viết một bình luận