用pascal写一个求质数的算法
时间: 2023-05-26 11:07:45 浏览: 58
以下是使用 Pascal 编写的找到质数的算法:
```
program PrimeNumbers;
var
i, j: Integer;
isPrime: Boolean;
begin
for i := 2 to 100 do //假设要求2到100内的所有质数
begin
isPrime := true;
for j := 2 to i - 1 do
begin
if (i mod j = 0) then //找到了非1和本身的因子,不是质数
begin
isPrime := false;
break;
end;
end;
if isPrime then
writeln(i); //输出质数
end;
readln;
end.
```
这个程序会在控制台输出2到100内的所有质数。
相关问题
用类Pascal语言写一个逆置单链表的算法
以下是用类Pascal语言写一个逆置单链表的算法的示例代码:
type
PNode = ^TNode;
TNode = record
Data: Integer;
Next: PNode;
end;
function ReverseList(Head: PNode): PNode;
var
Prev, Curr, Next: PNode;
begin
Prev := nil;
Curr := Head;
while Curr <> nil do
begin
Next := Curr^.Next;
Curr^.Next := Prev;
Prev := Curr;
Curr := Next;
end;
Result := Prev;
end;
在这个算法中,我们定义了一个指向单链表节点的指针类型PNode和一个包含数据和下一个节点指针的节点类型TNode。ReverseList函数接收一个指向单链表头节点的指针Head,并返回逆置后的单链表头节点指针。在函数中,我们使用三个指针Prev、Curr和Next来遍历单链表并逆置每个节点的Next指针。最后,我们返回逆置后的单链表头节点指针Prev。
用simple pascal写一个快排
以下是使用 Simple Pascal 写的快速排序示例代码:
```
program QuickSort;
const
MAX = 100;
type
arr = array[1..MAX] of integer;
var
A: arr;
n, i: integer;
procedure Swap(var a, b: integer);
var
temp: integer;
begin
temp := a;
a := b;
b := temp;
end;
procedure QuickSort(var A: arr; l, r: integer);
var
i, j, p: integer;
begin
if l < r then
begin
p := A[(l + r) div 2];
i := l;
j := r;
repeat
while A[i] < p do Inc(i);
while A[j] > p do Dec(j);
if i <= j then
begin
Swap(A[i], A[j]);
Inc(i);
Dec(j);
end;
until i > j;
QuickSort(A, l, j);
QuickSort(A, i, r);
end;
end;
begin
writeln('Enter the number of elements: ');
readln(n);
writeln('Enter the elements: ');
for i := 1 to n do readln(A[i]);
QuickSort(A, 1, n);
writeln('Sorted array: ');
for i := 1 to n do writeln(A[i]);
end.
```
该程序首先要求用户输入要排序的元素数量,然后通过循环读取每个元素的值。然后调用 QuickSort() 过程来对数组进行排序,并在最后打印排序后的数组。