在perl 将小于n(n由用户输入确定)的所有个位数不等于5的素数(素数:只能被1和本身整除的整数)在屏幕上打印,具体要求: 1)n的具体值由用户输入来确定,且输入提示"Inputn:”; 2) 分行显示,每行输出6个数。(不使用函数)
时间: 2024-12-20 18:18:37 浏览: 6
在Perl中,我们可以使用循环结构和条件判断来实现这个功能。以下是满足要求的简单代码:
```perl
#!/usr/bin/perl
use strict;
use warnings;
# 获取用户输入的n值
print "Input n: ";
my $n = <STDIN>;
chomp $n;
# 确保n是正整数
if ($n <= 0 || ! $n % 1) {
die "请输入一个正整数。\n";
}
# 判断是否为素数的辅助函数
sub is_prime {
my $num = shift;
return 0 if $num < 2; # 小于2的数都不是素数
for my $i (2 .. sqrt($num)) {
return 0 if $num % $i == 0;
}
return 1;
}
# 创建一个数组来存储结果
my @result;
for my $i (1..$n) { # 遍历1到n
next unless $i % 10 != 5; # 跳过个位是5的数字
if (is_prime($i)) { # 检查是否为素数
push @result, $i; # 若是素数,加入结果数组
last if scalar @result >= 6; # 当结果数组满6个就跳出当前循环
}
}
# 打印结果,每行六个数
while (@result) {
print "@result[0..5]\n";
shift @result;
}
阅读全文