第n小的质数
第n小的质数
- C语言代码
- C++ 语言代码
- Java语言代码
- Python语言代码
💐The Begin💐点点关注,收藏不迷路💐
|
输入一个正整数n,求第n小的质数。
输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
C语言代码
#include <stdio.h>
#include <stdbool.h> // 引入布尔类型相关头文件,用于判断是否为质数
// 判断一个数是否为质数的函数
bool is_prime(int num) {
if (num < 2) { // 小于2的数不是质数
return false;
}
for (int i = 2; i * i <= num; i++) { // 从2到该数的平方根遍历
if (num % i == 0) { // 如果能被整除,就不是质数
return false;
}
}
return true;
}
int main() {
int n;
scanf("%d", &n); // 读取输入的正整数n,表示要找第n小的质数
int count = 0; // 用于记录找到的质数个数
int num = 2; // 从2开始找质数
while (count < n) { // 只要找到的质数个数小于n,就继续找
if (is_prime(num)) { // 如果当前数是质数
count++; // 质数个数加1
}
num++; // 尝试下一个数
}
printf("%d\n", num - 1); // 输出第n小的质数,因为最后num多加了1次,所以减1输出
return 0;
}
C++ 语言代码
#include <iostream>
#include <cmath> // 引入数学库头文件,用于求平方根等操作
using namespace std;
// 判断一个数是否为质数的函数
bool is_prime(int num) {
if (num < 2) { // 小于2的数不是质数
return false;
}
for (int i = 2; i <= sqrt(num); i++) { // 从2到该数的平方根遍历
if (num % i == 0) { // 如果能被整除,就不是质数
return false;
}
}
return true;
}
int main() {
int n;
cin >> n; // 输入正整数n
int count = 0; // 记录找到的质数个数
int num = 2; // 从2开始查找质数
while (count < n) { // 只要没找到第n个质数,就继续循环
if (is_prime(num)) { // 如果当前数是质数
count++; // 质数个数加1
}
num++; // 尝试下一个数
}
cout << num - 1 << endl; // 输出第n小的质数,因为最后num多加了1次,所以减1输出
return 0;
}
Java语言代码
import java.util.Scanner;
public class PrimeNumber {
// 判断一个数是否为质数的方法
public static boolean isPrime(int num) {
if (num < 2) { // 小于2的数不是质数
return false;
}
for (int i = 2; i * i <= num; i++) { // 从2到该数的平方根遍历
if (num % i == 0) { // 如果能被整除,就不是质数
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 获取输入的正整数n
int count = 0; // 用于记录找到的质数个数
int num = 2; // 从2开始找质数
while (count < n) { // 只要找到的质数个数小于n,就继续找
if (isPrime(num)) { // 如果当前数是质数
count++; // 质数个数加1
}
num++; // 尝试下一个数
}
System.out.println(num - 1); // 输出第n小的质数,因为最后num多加了1次,所以减1输出
}
}
Python语言代码
n = int(input()) # 获取输入的正整数n,表示要找第n小的质数
count = 0 # 记录找到的质数个数
num = 2 # 从2开始找质数
while count < n: # 只要没找到第n个质数,就继续循环
is_prime = True # 先假设当前数是质数
for i in range(2, int(num ** 0.5) + 1): # 从2到该数的平方根遍历
if num % i == 0: # 如果能被整除,就不是质数
is_prime = False # 修改为不是质数的标记
break # 一旦确定不是质数,就不用继续判断了
if is_prime: # 如果是质数
count += 1 # 质数个数加1
num += 1 # 尝试下一个数
print(num - 1) # 输出第n小的质数,因为最后num多加了1次,所以减1输出
💐The End💐点点关注,收藏不迷路💐
|