pascal纯粹素数纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/22 17:21:24
pascal纯粹素数
纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数.这样下去一直到最后剩下的个位数也还是素数.求出所有小于3000的四位的纯粹素数.
输入
无
输出
按从小到大的顺序输出若干个纯粹素数,每行一个.
在这里个位数是1也算素数
纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数.这样下去一直到最后剩下的个位数也还是素数.求出所有小于3000的四位的纯粹素数.
输入
无
输出
按从小到大的顺序输出若干个纯粹素数,每行一个.
在这里个位数是1也算素数
对于这个题,依稀记得我之前曾回答过,于是找了一下,确实有!
我又看了一下原先的解题,应该还是好理解的,这里附上链接:
http://zhidao.baidu.com/question/551794357.html?oldq=1
原题的数据范围比你的大得多,而且有一点不同,就是你的要求是“求出所有小于3000的四位的纯粹素数”,因此有一些地方要改动一下.
修改后的代码如下:
var i,j,n,t,code:longint;
s:string;
prime:array[2..3000]of boolean;
begin
fillchar(prime,sizeof(prime),true);
readln(n); //这里令n=3000;
for i:=2 to trunc(sqrt(n)) do
if prime[i] then
begin
for j:=2 to n div i do
prime[i*j]:=false;
end; //经过如此,每一个素数对应的数组元素都是true;
for i:=1001 to n do
if prime[i] then
begin
t:=i;
while t>0 do
begin
str(t,s);
delete(s,1,1);
val(s,t,code); //这里用了一个小技巧,运用字符串函数 str 和 val 删去了 t 的最高位.
if not prime[t] then break;
end;
if t
我又看了一下原先的解题,应该还是好理解的,这里附上链接:
http://zhidao.baidu.com/question/551794357.html?oldq=1
原题的数据范围比你的大得多,而且有一点不同,就是你的要求是“求出所有小于3000的四位的纯粹素数”,因此有一些地方要改动一下.
修改后的代码如下:
var i,j,n,t,code:longint;
s:string;
prime:array[2..3000]of boolean;
begin
fillchar(prime,sizeof(prime),true);
readln(n); //这里令n=3000;
for i:=2 to trunc(sqrt(n)) do
if prime[i] then
begin
for j:=2 to n div i do
prime[i*j]:=false;
end; //经过如此,每一个素数对应的数组元素都是true;
for i:=1001 to n do
if prime[i] then
begin
t:=i;
while t>0 do
begin
str(t,s);
delete(s,1,1);
val(s,t,code); //这里用了一个小技巧,运用字符串函数 str 和 val 删去了 t 的最高位.
if not prime[t] then break;
end;
if t
pascal纯粹素数纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素
一个两位素数,交换其各位与十位上的数字仍为素数,这样的数有几个
pascal求100000以内的纯粹素数.
纯粹合数是哪些?一个合数,去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最
什么是一个数的素数?
编写程序输出100到10000以内的所有超级素数.所谓超级素数就是一个数本身是素数,从右依次去掉一位数字后所得的数还为素
一个素数,当它的数字位置对换以后仍为素数,这样的素数称为绝对素数.编写出一个程序,求出所有的绝对素数.
一个三位素数的各个数都是素数,这样的三位数有哪些?要全部!
设计一个程序,判断一个十二位的整数是否为素数,也就是说判断一个很大的数是否为素数.
改正程序中的错误,判断一个数是否是素数.素数就是只能被1和自身整除的正整数,1不是素数,2是素数.
如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13.试求出所有二位绝对素数
PASCAL语言 找出各位上数字之和为8,并且是素数的所有二位正整数的和,并输出这些数及其和