- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Phân tích một số ra thừa số nguyên tố



Ví dụ: Phân tích 12=2*2*3. Ý tưởng: Thuật toán phân tích một số ra thừa số nguyên tố tương tự như thuật toán kiểm tra số nguyên tố. Điểm khác ở đây là khi kiểm tra số nguyên tố ta phải lần lượt kiểm tra các số nhỏ hơn sqrt(n) (căn bậc hai của n) có phải là ước của n hay không, còn khi phân tích ta chỉ việc chia n cho các số nguyên bắt đầu từ số nguyên tố nhỏ nhất là 2. Khi không chia được nữa thì ta tăng số chia lên 1 đơn vị, quá trình phân tích kết thúc khi n bằng 1.

VAR i,n :INTEGER;
BEGIN
    Write ('Nhap n:');
    Readln(n);
    Write (n,'=');
    i:=2;
    REPEAT
        WHILE n MOD i <> 0 DO
            i:=i+1;
        Write(i);
        n:=n DIV i;
        IF n > 1 THEN
            write ('*');
    UNTIL n = 1;
    readln;
END.


haiyka.xtgem.com nói...

Ghe tham wap haiyka.xtgem.com co nhieu code hay va bo ich hon nua


07:54 Ngày 23 tháng 04 năm 2012
dũng Mai Văn nói...

Viết chương trình nhập số nguyên n từ bàn phím (n < 10000), in ra màn hình bảng phân tích số n ra thừa số nguyên tố dưới dạng bảng phân tích và tích các thừa số nguyên tố.
Ví dụ: Với n = 100 thì in ra
100 | 2
50 | 2
25 | 5
5 | 5
1 |
và 100 = 2.2.5.5


16:23 Ngày 06 tháng 10 năm 2012
Nặc danh nói...

hay khung khiep


15:22 Ngày 23 tháng 11 năm 2012
Nặc danh nói...

dk nhỉ mà cũng không = mình hjhjhj phone để tích lũy kinh nghiem pascal 01868582012


14:42 Ngày 13 tháng 12 năm 2012
hoàng nam nói...
Nhận xét này đã bị tác giả xóa.
Yama Moto nói...
Nhận xét này đã bị tác giả xóa.
Nặc danh nói...

Đúng thứ mình cần. Thank bạn
www.giupnhanh.com


11:31 Ngày 19 tháng 05 năm 2013
Nặc danh nói...

Các bạn ơi giúp mình với ! bài phân tích ra thừa số nguyên tố , VD nhập 1234567891 mà chương trình nó ra kết quả chậm thì cách khắc phụ là gì?


19:51 Ngày 26 tháng 06 năm 2013
Phú Huỳnh Quốc nói...

Cảm ơn bạn nhiều nhé !!!


11:04 Ngày 13 tháng 10 năm 2013
Nặc danh nói...

Các bạn ơi giúp mình với ! bài phân tích ra thừa số nguyên tố , VD nhập 1234567891 mà chương trình nó ra kết quả chậm thì cách khắc phụ là gì?
Them doan kiem tra
uses crt;
VAR i,n,b :Longint;
BEGIN
clrscr;
Write ('Nhap n:');
Readln(n);
b:=n;
Writeln (n,' phan tich ra thua so nguyen to');
i:=2;
REPEAT
WHILE (n MOD i <> 0) and (i 1 THEN
write ('*');}
UNTIL (n = 1) or (i>sqrt(b));
if i>sqrt(b) then
begin
Writeln(n:5,'|',n);
Writeln(1,'|',1)
end else
Writeln(n:5,'|',1); {1234567891}
readln;
END.


16:41 Ngày 13 tháng 11 năm 2013
Nặc danh nói...

uses crt;
VAR i,n,b :Longint;
BEGIN
clrscr;
Write ('Nhap n:');
Readln(n);
b:=n;
Writeln (n,' phan tich ra thua so nguyen to');
i:=2;
REPEAT
WHILE (n MOD i <> 0) and (isqrt(b));
if i>sqrt(b) then
begin
Writeln(n:5,'|',n);
Writeln(1,'|',1)
end else
Writeln(n:5,'|',1); {1234567891}
readln;
END.


16:43 Ngày 13 tháng 11 năm 2013
Nặc danh nói...

Post len bi loi ma nhung them doan kiem tra i< can cua b=n vao la xu li duoc voi cac so nguyen to (thoi gian chay nhanh hon) vi voi so nguyen to 1234567891 thay vi tang i den 123456789 thi i chi chay den can cua 123456789


16:45 Ngày 13 tháng 11 năm 2013
Nặc danh nói...

dai hon cach cua mk


16:31 Ngày 02 tháng 12 năm 2013
cua con iu may tinh nói...

cach giai cua cac pan rat hay nhung dai hon cua mik


08:29 Ngày 08 tháng 01 năm 2014

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.