Chương Trình Tìm Số Siêu Nguyên Tố Bị Sai - Programming
Có thể bạn quan tâm
đề bài : cho M (<= 30000), tìm số siêu nguyên tố gần nó nhất (hoặc là chính nó)
- số siêu nguyên tố : là số nguyên tố mà khi bỏ đi lần lượt một chữ số bên phải thì nó vẫn là số nguyên tố vd : 2333 là số nguyên tố, 233 vẫn là nguyên tố, 23 vẫ là nguyên tố mà 2 cũng là nguyên tố
Đây là chương trình em viết
program so_sieu_nguyen_to; uses crt; var m : integer; so1,so2 : integer; function is_prime(x : integer) : boolean; var i : integer; begin is_prime := true; if (x = 1) or (x = 0) then is_prime := false; for i:=2 to (x div 2) do if (x mod i = 0) then begin is_prime := false; break; end; end; function is_super_prime(x : integer) : boolean; begin is_super_prime := true; if (x = 0) then is_super_prime := false else begin while (is_prime(x) = true) and (x <> 0) do x := x div 10; if (x = 0) then is_super_prime := true else is_super_prime := false; end; end; procedure tim_so; var i : integer; begin for i := m downto 2 do begin if (is_super_prime(i) = true) then begin so1 := i; break; end; end; for i := m+1 to m*2 do begin if (is_super_prime(i) = true) then begin so2 := i; break; end; end; end; begin readln(m); tim_so; if (so1 = 0) then writeln(so2) else if ((so2 - m) < (m - so1)) then writeln(so2) else if ((so2 - m) > (m - so1)) then writeln(so1) else begin writeln(so1); writeln(so2); end; end.chương trình vẫn chạy nhưng ở khoảng m = 70 -> m = 3000 thì nó chỉ trả về 0, em mò mà vẫn không ra, ae giúp em với -_-đề bài : cho M (<= 30000), tìm số siêu nguyên tố gần nó nhất (hoặc là chính nó)
- số siêu nguyên tố : là số nguyên tố mà khi bỏ đi lần lượt một chữ số bên phải thì nó vẫn là số nguyên tố vd : 2333 là số nguyên tố, 233 vẫn là nguyên tố, 23 vẫ là nguyên tố mà 2 cũng là nguyên tố
Đây là chương trình em viết
program so_sieu_nguyen_to; uses crt; var m : integer; so1,so2 : integer; function is_prime(x : integer) : boolean; var i : integer; begin is_prime := true; if (x = 1) or (x = 0) then is_prime := false; for i:=2 to (x div 2) do if (x mod i = 0) then begin is_prime := false; break; end; end; function is_super_prime(x : integer) : boolean; begin is_super_prime := true; if (x = 0) then is_super_prime := false else begin while (is_prime(x) = true) and (x <> 0) do x := x div 10; if (x = 0) then is_super_prime := true else is_super_prime := false; end; end; procedure tim_so; var i : integer; begin for i := m downto 2 do begin if (is_super_prime(i) = true) then begin so1 := i; break; end; end; for i := m+1 to m*2 do begin if (is_super_prime(i) = true) then begin so2 := i; break; end; end; end; begin readln(m); tim_so; if (so1 = 0) then writeln(so2) else if ((so2 - m) < (m - so1)) then writeln(so2) else if ((so2 - m) > (m - so1)) then writeln(so1) else begin writeln(so1); writeln(so2); end; end.chương trình vẫn chạy nhưng ở khoảng m = 70 -> m = 3000 thì nó chỉ trả về 0, em mò mà vẫn không ra, ae giúp em với -_-
Từ khóa » Thuật Toán Tìm Số Siêu Nguyên Tố Trong Pascal
-
Bài Tập Về Số Nguyên Tố, Số Siêu Nguyên Tố, Số Nguyên Tố Tương ...
-
Chủ đề: Số Siêu Nguyên Tố - Diễn Đàn Tin Học
-
Viết Chương Trình Kiểm Tra Số Siêu Nguyên Tố Trong Pascal Và Xuất Ra ...
-
Số Siêu Nguyên Tố
-
Số Nguyên Tố Là Gì? Số Siêu Nguyên Tố Là Gì?
-
Số Siêu Nguyên Tố - Super Prime Number - Thầy Quách Văn Lượm
-
Số Siêu Nguyên Tố Và Thuật Toán Trong Pascal - YouTube
-
Bài 1: Số Siêu Nguyên Tố (5 điểm)
-
Thuật Toán Tối ưu: Số Siêu Nguyên Tố | VFO.VN
-
Lập Trình đơn Giản - Hoc24
-
NAAP18 Viết Chương Trình Nhập Vào Một... - Nỗi ám ảnh Pascal
-
Kiểm Tra Xem Số N Có Phải Số SIÊU Nguyên Tố Trong C - Dạy Nhau Học
-
Số Siêu Nguyên Tố Là Số - MTrend