用Pascal语言 如何判断素数

【试题描述】 任意输入一个整数,判断它是否为素数。是的话输出"T",不是的话输出"F".【输入描述】 输入只有一行,包括1个整数。【输出描述】 输出只有一行.【输入样例】 57 【输出样例】 F 【解题提示】 (提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。)
2026年09月27日 19:33
有5个网友回答
网友(1):

20以内的素数环:1 2 3 4 1 4 3 2 5 6 1 2 3 8 5 6 7 41 2 3 4 7 6 5 8 9 10 1 2 3 4 7 6 5 12 11 8 9 10 1 2 3 4 7 6 13 10 9 14 5 8 11 12 1 2 3 4 7 6 5 12 11 8 9 14 15 16 13 10 1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 12 11 18 1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18 算法设计: 利用回溯法穷举所有可能性,找到一个后,结束程序。具体来讲,就是在第一个位置先设置为1,然后第二个位置试试2行不行,再在第三个位置试试3行不行,再在第四个位置试试4行不行,再在第五个位置试试5,发现不行,然后试试6,发现还不行,再试试7,终于可以了,继续往下试验……楼主可以写个程序试试,哈哈

网友(2):

var flag,i,n:integer;
begin
write('please input a number n=');
readln(n);
if n<2 then
write(' error!')
else
if n=2 then
write(' T')
else
begin
flag:=1;
for i:=2 to n-1 do
if n mod i=0 then flag:=0;
if flag=1 then
write(' T')
else
write(' F');
end;
readln;
end.

网友(3):

var a,n:longint;
pd:char;
begin
readln(a);
n:=1;
pd:='T';
repeat
n:=n+1;
if a mod n=0 then pd:='F';
until (n>=sqrt(a))or(pd='F');
writeln(pd);
end.

网友(4):

var
i,n:longint;
begin
readln(n);
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then
begin
writeln('F');
halt;
end;
writeln('T');
end.

网友(5):

function isprimer(p: integer): Char;var i: integer;begin Result := 'T';
for i := 2 to Round(sqrt(p)) do if p mod i = 0 then result := 'F';end;var x: Integer;begin Readln(x); Writeln(isprimer(x)); Readln;end.