如何在一行循环中用逗号分隔数字?

时间:2013-02-03 14:36:29

标签: pascal freepascal

我在FreePascal中制作一个素数程序。

如何输出数字除以I1,I2用逗号分隔而不是2行?

var
  P:Integer;
  I:Integer;
  J:Integer;
  A:Integer;

  begin

    writeln('Prime number program');
    writeln;
    writeln('Insert number');
    readln(P);

    for I:=2 to P-1 do
    begin
      J:=P Mod I;
      if (J=0) then
      begin
        writeln(P,' divides with ',I);
        a:=a+1
      end;
    end;

    if a=0 then
      begin
      writeln(P,' is prime number')
      end;
  end.

2 个答案:

答案 0 :(得分:2)

我知道这不是教你一些东西的好方法,但这里是:

program Project1;
uses
  SysUtils;
var
  S: string;
  I: Integer;
  Count: Integer;
  Input: Integer;
begin
  Writeln('Prime number program');
  Writeln;
  Writeln('Insert a number:');
  Readln(Input);

  for I := 2 to Input-1 do
  begin
    if (Input mod I = 0) then
    begin
      Count := Count + 1;
      if (S <> '') then
        S := S + ', ';
      S := S + IntToStr(I);
    end;
  end;

  if (Count = 0) then
    Writeln(Input, ' is a prime number.')
  else
    Writeln(Input, ' is not a prime number. It divides with ', S, '.');
  Readln;
end.

答案 1 :(得分:0)

prime := true;
for i := 2 to p - 1 do
if(p mod i = 0) then prime := false;
if prime then writeln("prime");

所有程序:

program Prime;
var
  prime: boolean;
  I, P: Integer;
begin
  Writeln('Prime number program');
  Writeln;
  Writeln('Insert a number:');
  Readln(P);
  prime := true;


  for i := 2 to p - 1 do
  if(p mod i = 0) then prime := false;
  if prime then writeln("prime");
           else writeln("not prime");
  Readln;
end.