首页 > 试题广场 >

Prime Number

[编程题]Prime Number
  • 热度指数:17301 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
Output the k-th prime number.

输入描述:
k≤10000


输出描述:
The k-th prime number.
示例1

输入

3
7

输出

5
17
#include <stdio.h>
#include <math.h>
int Fun(int x){
    int n = (int)sqrt(x);
    for (int i = 2; i <= n; i ++) {
        if (x%i==0) {
            return 0;
        }
    }
    return 1;
}
int main(){
    int k, n = 0, i;
    scanf("%d", &k);
    for (i = 2; n!=k; i ++) {
        if (Fun(i)) {
            n ++;
        }
    }
    printf("%d\n", i-1);
    return 0;
}

质数筛法也能做
发表于 2023-02-13 22:54:45 回复(0)
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool isPrime(int x)
{
    if (x <= 1)
        return false;
    for (int i = 2; i * i <= x; i++)
    {
        if (x % i == 0)
            return false;
    }
    return true;
}

int main()
{
    int k;
    while(scanf("%d", &k) != EOF)
    {
        int x = 2, cnt = 0;
        while(true)
        {
            if (isPrime(x)) cnt++;
            if (cnt == k)
               break; 
            x++;
        } 
        printf("%d\n", x);
    }
    return 0;
}

发表于 2022-03-18 23:45:49 回复(0)
//ky110输出第k个质数
#include<stdio.h>
int Judge_zhishu(int n){
	if(n==2)
		return 1;
	else{
		for(int i=2;i*i<=n;i++){
			if(n%i==0)
				return 0;
		}
		return 1;
	}
}

int main(){
	int k;
	while(scanf("%d",&k)!=EOF){
		int temp=0;//表示当下是第几个质数
		int i=2;
		while(temp!=k){
			for(i;;i++){
				if(Judge_zhishu(i)){
					temp++;
					i+=1;
					break;
				}
				else
					continue;
			}
		}
		printf("%d",i-1);
		printf("\n");
	}
}

发表于 2022-01-27 13:56:32 回复(0)