ủng hộ thuonghcm
ước thì chắc đến div 2
còn kiểm tra thì chỉ cần đến sqrt
không biết đúng hay không nữa ...
ủng hộ thuonghcm
ước thì chắc đến div 2
còn kiểm tra thì chỉ cần đến sqrt
không biết đúng hay không nữa ...
program phantichrathuasonguyento;
var n,i,j: integer;
Procedure nhap(var n:integer};
begin
writeln('Nhap so n'); readln(n); end;
function snt(n:integer): boolean; {kiểm tra số nguyên tố}
var i,j: integer;
begin
snt:= true;
for i:=2 to trunc(sqrt(n)) do
if n mod i = 0 then
begin
snt:= false;exit; end;
end;
begin {chuong trinh chinh}
nhap(n);
j:=n;
for i:=2 to j do
if snt(i)= true then
begin
if n mod i = 0 then
repeat
n:= n div i;
write(i);
until n mod i <> 0;
end;
readln;
end.
var
n,i:integer;
begin
repeat
write('n=');
readln(n);
i:=2;
while i*i<=n do
begin
while n mod i=0 do
begin
writeln(i);
n:=n div i;
end;
if i=2 then i:=3 else i:=i+2;
end;
if n<>1 then writeln(n);
until n=0;
end.
vui nhỉ. Mọi người nghe thuật toán của em nhé. Đầu tiên tìm các ước của số nhập vào. Tiếp tục tìm trong các ước đó các số nguyên tố. Gán so:=so div i(i là các ước nguyên tố) rồi làm tiếp lại từ bước đầu.
Cho 1 biến i chạy từ 2 đến n (1 k là số nguyên tố => chạy từ 2 ) , và mỗi giá trị của i thì gọi thủ tục tach(i:integer) 1 lầnCode:procedure tach(n:integer); begin t:=2; while n<>1 do begin if n mod t=0 then begin n:=n div t; inc(a[t]); {if dd[t]=false then} dd[t]:=true; end else inc(t); end; end; ... for i:=2 to n do tach(i); ...
Trong phần tách ta sẽ làm như sau:
cho biến t=2, t sẽ là các số nguyên tố mà số i sẽ chia hết, nếu ko chia hết thì cứ tăng t lên và thế mà chia cho đến khi i=1 thì thui
dùng mảng a để lưu số lần xuất hiện của t, sẽ đc tính là a[t], và dùng 1 mảng đánh dấu là dd để bỏ wa ko in ra cái t ko phải là số nguyên tố khi tăng t 1 đơn vị wa mỗi vòng lặp nếu i ko chia hết cho t.
Pascal khổ thế nhỉ! chẳng hỉu gì lun huhu
Ai co source thuat toan rsa trong bao mat chu ky dien tu cho em xin voi, em can gap.
Các bác pro ơi giúp em bài này với!!!!!!!!
Một lớp có N học sinh được hội phụ huynh mua tặng N gói kẹo, gói kẹo thứ i có V[i] cái kẹo(1<=i<=N). Hãy lấy bớt hoặc là thêm vào gói kẹo thứ i(1<=i<=N) một số kẹo nào đó để tất cả học sinh đều có số kẹo như nhau và nhiều nhất và không phải mua thêm kẹo.
Nhập vào bàn phím: số nguyên dương N<=50 và số kẹo của mỗi gói kẹo.
Kết quả xuất ra màn hình: dòng đầu in số kẹo thừa.
N dòng tiếp theo, dòng thứ i in ra số kẹo cần thêm bớt từ gói thứ i, trong đó dấu cộng nếu số kẹo được thêm, dấu trừ nếu số kẹo được lấy ra.
vd: nhập vào: 3 15 21 9
xuất ra: 0 0 -6 +6
Bookmarks