1-1000的素数用pascal语言怎么求?

作者&投稿:播高 (若有异议请与网页底部的电邮联系)
用Pascal语言求出1——1000以内的孪生素数!!!!~

思路:
1.定义一个“函数prime”,判断该数是否是素数;
2.主程序:
1)输出(2,3)
2)从3~999的所有奇数循环;
3)如果这个数是素数,则判断这个数+2是不是素数,如果是,则输出(这个数,这个数+2)。

程序LZ可以自己试试看。

这个定义的函数prime的思路是:
1.要判断一个数 n 是否是素数,可以从2~trunc(sqrt(n))循环,再看循环变量是否能整除 n ,如果都不能整除,则 n 是素数;
2.过程如下:
function prime(n:longint):boolean;
var i:longint;
begin
prime:=true;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then
begin
prime:=false;
exit;
end;
end;

这段代码不优化,不过由于是1000以内,还可以。
经过上机调试,测试通过,源代码见附件。
希望对你有帮助。

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,终于可以了,继续往下试验……楼主可以写个程序试试,哈哈

用筛选法
直接打的 理解下思路就行了
f:array[0..1000] of boolean;
先初始化 fillchar(f,sizeof(f),1);
for i:=2 to 1000 do
if f[i] then // i是素数
begin
writeln(i);
2到1000里i的倍数都设为false;
end;

var
i:integer;
function check(t:longint):boolean;
var
i,j:longint;
begin
check:=true;
for i:=2 to trunc(sqrt(t)) do
if t mod i=0 then exit(false);
end;
begin
for i:=2 to 1000 do
if check(i) then write(i,' ');
end.

函数法
var n,i:longint;
function ss(n:longint):boolean;
var i:longint;
begin
for i:=2 to sqrt(trunc(n)) do
if n mod i=0 then exit(false);
exit(true);
end;
begin
for i:=2 to 1000 do //由于1不是函数直接从2 开始
if ss(i) then write(i,' ');
end.

筛法打表、


如何求1到1000之内的最大素数
997

用matlab求满足1-1000任意三个素数满足p1+p2=p3的程序?
不妨固定p1=2,只要求p2和p3就好,也就是说p3-p2=2,两个奇素数之差为2。matlab里有两个关于素数的函数,primes(N)用来求自然数N以内所有素数。isprime(n)用来判断n是否为素数。我这里只用了primes()。下面是程序和运行结果 n=primes(1000); % 找出1000以内所有素数 i=find(diff(n)==2);...

编写程序,求4—1000之间的所有素数
将素数加入到一个列表中,最后返回这个列表。下面是一个例子:这个程序首先定义了一个is_prime函数,用于判断一个数是否为素数。然后创建了一个空的列表prime_list用于存放素数。接下来使用循环遍历4到1000之间的所有数,对于每个数,如果它是素数,就把它添加到prime_list中。最后打印出这个列表。

java 打印1-100之间的素数<只能用一个for循环>
100以内素数只要不能被10以内的素数整除即可:1000以内不能被100以内的素数整除即可 public static void main(String args[]) { ArrayList list = new ArrayList();for(int i = 0 ; i <= 100 ; i++){ if((i!=2)&&(i%2 == 0)) continue;if((i!=3)&&(i%3 == 0)) continue;if...

1000~10000以内素数有多少个
首先你这题是什么意思?如果是全部的素数就是楼上说的一共是1061个 ;不过“从1 2 3 4 5 6选择”的意思如果是这里面的素数的每位上的数字只能是从1,2,3,4,5,6里面选出来的?要是那样的话应该是有153个;参考资料:C语言做的程序!

怎么求1000以内的素数
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,...

VF 求100-1000内的最大的素数。(素质是指只能被1和本身整除的数)(997...
s=0 for n=100to 1000 &&从100开始循环到1000 flag=1 &&每测试一个数是否素数,定义flag=1 for j=2to n-1 &&从1开始循环到n-1,以判断n是否为素数 if mod(n,j)=0 flag=0 &&当n能被本身和1之外的数整除,即不为素数时,flag=0 exit && 跳出内层循环 endif endfor if...

大于1000的素数有哪些?
素数:1009 素数:1013 素数:1019 素数:1021 素数:1031 素数:1033 素数:1039 素数:1049 素数:1051 素数:1061 素数:1063 素数:1069 素数:1087 素数:1091 素数:1093 素数:1097 素数:1103 素数:1109 素数:1117 素数:1123 素数:1129 素数:1151 素数:1153 素数:1163 素数:1171 素数...

输出1000以内的素数
关于输出1000以内的素数,如下:1、运用C语言输出1000以内的素数 素数是只能被1和自身整除的数,规定1不是素数,所以使用嵌套循环的方式,外层循环让i从2到1000自增,给isprime赋值为1,内层循环让k(除数)进行从2到i的自增,若余数为零则给isprime赋值为0,并用break终止内循环,若isprime的值为1则...

用java写出3-1000之间的素数
public class Cat { public static void main(String[] args) { for(int i = 3; i <= 1000; i+=2){ boolean isPrime = true;for(int j = 2; j <= Math.sqrt(i); j++){ if(i % j == 0){ isPrime = false;break;} } if(isPrime){ System.out.print(i + " ");} } ...

武陟县17695976408: 100 - 1000 素数之和 -
包季夜宁:[答案] pascal: var s,i,x,t:longint; begin s:=0; for x:=100 to 1000 do begin t:=0; for i:=1 to x do if x mod i=0 then t:=t+1; if t=2 then s:=s+x; end; writeln('S=',s); end.

武陟县17695976408: 怎么用pascal语言求1 - 1000的素数? -
包季夜宁: program prime1600(input,output);const maxlen=40;var primes :array[1..maxlen] of integer;i,j,n,c:integer;beginn:=2;write(2,',',3);primes[1]:=2;primes[2]:=3; {初...

武陟县17695976408: 用pascal语句写一个1 - 1000中所有质数的总和
包季夜宁: var i,j,sum:integer; begin for i:=2 to 1000 do begin j:=2; while j<=trunc(sqrt(i)) do begin if i mod j=0 then break; j:=j+1; end; if j>trunc(sqrt(i)) then begin sum:=sum+i;end; end; writeln(sum); end.

武陟县17695976408: 用pascal编写程序 求1000内的素数(素数就是只能被1和它自己本身整除,素数比如:2、3、5、7……) -
包季夜宁: 以下是求n以内的素数的程序.只要输入n的值,就能求出n以内所有的素数.var n,i,s:integer; yes:boolean; begin write('N='); readln(n); s:=0; for n:=2 to n do begin yes:=true; {先假定n是素数} for i:=2 to trunc(sqrt(n)) do if n mod i=0 then begin yes:...

武陟县17695976408: Pascal的筛选法求100`000`000以内的素数 -
包季夜宁: 以下求1000以内的素数,供参考.const maxp=1000; var maxfactor:longint; a:array[1..maxp] of boolean; i,k,newp:longint; begin maxfactor:=trunc(sqrt(maxp)); for i:=1 to maxp do a[i]:=true; for i:=2 to maxfactor do if a[i] then begin newp:=i+i; while ...

武陟县17695976408: 用数组输出一百以内的素数用pascal语言实现
包季夜宁: 给你提供一个判断素数的函数,希望有所帮助! 素数函数 function zhisu(n:dword):boolean; var j:dword; findd:boolean; m:word; begin m:=trunc(sqrt(n)); if n=1 then zhisu:=false else if (n=2)or(n=3) then zhisu:=true else begin findd:=false; j:=1; repeat j:=j+1; if (n mod j)=0 then findd:=true; until findd or (j>m); zhisu:=not findd; end; end;

武陟县17695976408: Pascal语言,用筛选法求出2~1000的质数 -
包季夜宁: Program zishu; Var a:array [2..1000] of integer; b:array [2..1000] of boolean; i,j:integer; Begin for i:=2 to 1000 do begin a[i]:=i; b[i]:=true; end; i:=1; repeat i;=i+1; if b[i]=true then for j:=2 to 1000 div i b[j*i]:=false; until i=1000; for i:=2 to 1000 do if b[i]=true then write(a[i],' '); End.(快给分) 有问题再请教.

武陟县17695976408: 求100以内的素数pascal语言 -
包季夜宁: Program ex; Var i: Byte; Function f(x: Byte): Boolean; Var m, i: Byte; Begin m := Trunc(sqrt(x)); f := True; For i:=2 To m Do If x mod i = 0 Then Begin f := false; Exit; End; End; Begin For i:=2 To 100 Do If f(i) Then Write(i, ' '); End.

武陟县17695976408: 用筛选法求n以内所有的素数(pascal)用子程序编写
包季夜宁: const maxn=1000; var i,j:longint; prime:array[1..maxn] of boolean; procedure init; begin assign(output,'primenumber1.out'); rewrite(output); end; procedure outit; begin close(output); end; procedure work; begin fillchar(prime,sizeof(prime),true); for i:=2...

武陟县17695976408: 怎样用pascal编程将1 - 1000之间(含1000)所有能被7整除的数累加并输出结果. -
包季夜宁: 这个很简单 var i,k:longint; begin k:=0; for i:=1 to 1000 do{搜索1-1000中的每个数} if i mod 7=0 then k:=k+i;{判断是否被7整除(余数是否等于0)并累加} writeln(k);{输出} end.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网