不用特定函数编写一个C程序,从命令行获取两个整数n和 m,然后输出n到 m 中所有的质数。
时间: 2023-05-18 21:04:18 浏览: 92
以下是代码:
```
#include <stdio.h>
int is_prime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, m;
printf("请输入两个整数n和m:");
scanf("%d %d", &n, &m);
printf("%d到%d中的所有质数为:\n", n, m);
for (int i = n; i <= m; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
这个程序会从命令行获取两个整数n和m,然后输出n到m中所有的质数。
相关问题
在一个名为shixi2的文件中,利用IDL的控制语句编写一个程序,输出n之内的全部素数(质数)。n为123加上个人学号后两位,如:学号后两位为24,则n为147。
在IDL语言中,你可以创建一个简单的程序来生成指定范围内(从1到n)的所有质数。由于需要结合特定的学号,这里假设你的学号后两位已经作为输入参数接收,例如通过命令行或者直接赋值。首先,我们需要获取n的值,然后遍历从2到n-1的整数,对每个数检查是否为质数。下面是一个示例程序的编写思路:
```idl
; 定义一个函数 is_prime() 检查一个数是否为质数
function is_prime(num)
if num < 2 then return false
for i = 2 to sqrt(num) do
if mod(num, i) == 0 then return false
endfor
return true
endfunction
; 获取n的值,这里假设学号后两位存储在变量$your_student_id
local n = 123 + $your_student_id
; 打开输出流(假设是屏幕)
open stdout, write
; 使用循环和if条件来查找并打印质数
write "Prime numbers between 1 and ", n, ":"
for i = 2 to n do
if is_prime(i) then
write i, " "
end if
endfor
; 关闭输出流
close stdout
阅读全文