编写程序,从键盘输入int型整数范围a~b,程序输出该范围内的所有素数。
时间: 2024-05-15 16:19:25 浏览: 96
以下是Python语言的实现代码:
```python
# 判断一个数是否为素数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
# 输入范围a和b
a = int(input('请输入范围下限a:'))
b = int(input('请输入范围上限b:'))
# 输出范围内的所有素数
for i in range(a, b+1):
if is_prime(i):
print(i, end=' ')
```
首先定义一个函数`is_prime(n)`,用来判断一个数是否为素数。判断方法是从2到$\sqrt{n}$遍历,如果有一个数可以整除n,则n不是素数;否则,n是素数。
然后,输入范围a和b,并使用`range(a, b+1)`来遍历这个范围。对于每个数i,如果`is_prime(i)`返回True,则输出i。注意,为了美观,使用`end=' '`来让每个素数之间用空格隔开。
相关问题
编写一个判断素数的函数int isprime(int m ),(素数就是质数,即除了1和它本身,没有别的因子),从键盘任意输入一个整数范围(m<n),调用该函数统计整数范围内的所有素数个数,非素数的个数,输出所有的素数,素数个数,非素数的个数。
以下是代码实现:
```c
#include <stdio.h>
int isprime(int m)
{
int i;
for (i = 2; i < m; i++) {
if (m % i == 0) {
return 0; // 不是素数,返回 0
}
}
return 1; // 是素数,返回 1
}
int main()
{
int m, n, i, prime_count = 0, not_prime_count = 0;
printf("请输入两个整数 m 和 n(m < n):\n");
scanf("%d %d", &m, &n);
printf("素数:");
for (i = m; i <= n; i++) {
if (isprime(i)) {
printf("%d ", i);
prime_count++;
} else {
not_prime_count++;
}
}
printf("\n素数个数:%d\n非素数个数:%d\n", prime_count, not_prime_count);
return 0;
}
```
以上代码中,`isprime` 函数用于判断一个整数是否为素数,如果是素数,则返回 1,否则返回 0。`main` 函数中,首先从键盘输入两个整数 m 和 n,然后使用 for 循环遍历整数范围,并调用 `isprime` 函数判断每个整数是否为素数。如果是素数,则输出该整数,并将素数计数器 `prime_count` 加 1;否则,将非素数计数器 `not_prime_count` 加 1。最后输出素数个数和非素数个数。
Java编写程序,从键盘上输入两个整数a和b(假设a=2,b=100),则显示输出2~100中的素数,每行显示5个数。
在Java中,你可以使用循环和条件判断来实现这个功能。以下是一个简单的示例程序,它会满足你的需求:
```java
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数a:");
int a = scanner.nextInt();
System.out.println("请输入第二个整数b:");
int b = scanner.nextInt();
// 遍历范围内的数,找出并打印素数
for (int i = a; i <= b; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
if (--count % 5 == 0 || i == b) { // 每打印5个数换行,最后一个数单独换行
System.out.println();
count = 0; // 重置计数器
}
} else {
count++; // 如果不是素数,计数器加一
}
}
scanner.close(); // 关闭扫描器
}
// 判断是否为素数的辅助方法
private static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
}
```
当你运行此程序,并输入a=2和b=100,它会依次打印出2到100之间的素数,每行显示5个数。
阅读全文