Lập trình đơn giản

HN

Cho số tự nhiên n (2 ≤ n ≤ 10000), viết chương trình phân tích số n thành các thừa số nguyên tố.

Ví dụ: n = 12

12 | 2

6 | 2

3 | 3

1 |

NT
9 tháng 2 2020 lúc 18:02

uses crt;
var n,i,j,a,b,kt1,kt2,kt,k:longint;
begin
clrscr;
write('nhap n='); readln(n);
if n mod 2=1 then begin
a:=2;
b:=n-a;
kt:=0;
for k:=2 to trunc(sqrt(b)) do
if b mod k=0 then kt:=1;
if kt=0 then writeln(n,'=',a,'+',b)
else write(n,' khong the phan tich thanh tong nguyen to');
end;
if n mod 2=0 then begin
for i:=2 to n div 2 do
begin
a:=i;
b:=n-i;
kt1:=0;
kt2:=0;
for j:=2 to trunc(sqrt(a)) do
if a mod j=0 then kt1:=1;
for j:=2 to trunc(sqrt(b)) do
if b mod j=0 then kt2:=1;
if (kt1=0) and (kt2=0) then writeln(n,'=',a,'+',b);
end;
end;
readln;
end.

Bình luận (0)
 Khách vãng lai đã xóa
NT
9 tháng 2 2020 lúc 19:20

uses crt;
var n,kt,i,n1,i1:integer;
begin
clrscr;
write('nhap n='); readln(n);
write(n,'=');
n1:=n;
i1:=2;
repeat
while n1 mod i1<>0 do
i1:=i1+1;
write(i1);
n1:=n1 div i1;
if n1>1 then write('*');
until n1=1;
readln;
end.

Bình luận (0)
 Khách vãng lai đã xóa
NS
9 tháng 2 2020 lúc 22:15

uses crt;
var n,kt,i,n1,i1:integer;
begin
clrscr;
write('nhap n='); readln(n);
write(n,'=');
n1:=n;
i1:=2;
repeat
while n1 mod i1<>0 do
i1:=i1+1;
write(i1);
n1:=n1 div i1;
if n1>1 then write('*');
until n1=1;
readln;
end.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
KH
Xem chi tiết
HQ
Xem chi tiết
BC
Xem chi tiết
BR
Xem chi tiết
LH
Xem chi tiết
KT
Xem chi tiết
H24
Xem chi tiết
QN
Xem chi tiết
H24
Xem chi tiết