回帖:编程入门题(二)
1、求素数:求2至N(2≤N≤500)之间的素数。例如:
输入:N=100
输出:2  3 5  71113 
 1719  23293137 
 4143  47535961
 7173  79838997
 total=24  {表示2至100之间的素数有24个}
[解法一]素数是指除1及本身以外不能被其他数整除的自然数。下面介绍用穷举法求素数。
1. 2是素数;t=0;
2. I=2~n,则:
(1)如果i是素数,则其必须是奇数且不能被2~√i中的任一个数整除。
  (2)如果I是素数,则输出该素数且计数器t=t+1;
  3.输出2~N之间素数的总数:total=t;
4.程序结束
[程序]
program exa;
uses crt;
vari,k,n,w,t:integer;
  yes:boolean;
Begin t:=0;clrscr;write(‘N=’);readln(n);
if (n500) then 
 begin writeln(‘input error!’);halt;end;
write(2:5);t:=1;
for i:=2 to n do
 if odd(i) then
  begin yes:=true;
  w:=trunc(sqrt(I));k:=2;
  while (k0 do
 begin P:=R;{数组P保存在P中}
  write(R[1]:5);{输出素数} t:=t+1;w:=R[1];j:=0;
  for i:=1 to k do
  if P mod w0 then{划去w及 W的倍数}
 begin j:=j+1; R:=P;end;{重新构造集合R}
  k:=j; {新建后R的元素个数}
 end;writeln;writeln('Total=',t);
end.
(f2);
 end.
 
  
--------------------------------------------------------------------------------
 
2、矩阵相乘:已知N×M1矩阵A和M1×M矩阵B(1≤M、M1、N≤10),求矩阵C(=A×B)。例如:
输入:N,M1,M=434
  A= 1  2 3 
3 4 5 提示:所谓矩阵相乘(如A×B=C),是指
4 5 6 Cij= ∑(Aik×Bkj)(i=1~N,j=1~M1,k=1~M)
5 –1–2 
  B= 1  6 4 2  例如:
  2  3 4 1 C11=A11×B11+A12×B21+A13×B31
  –1  5 7  –3  =1×1+2×2+3×(– 1)
输出:C= 2  27  33  –5 =2
  6  55  63  –5  C42= A41×B12+A42×B22+A43×B32
  8  69  78  –5  =5×6+

