从2开始找素数,找到第n个就行了
#include <stdio.h>
int isprime(int n)
{
for(int i=2;i<=n/2;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int n,m=1;
scanf("%d",&n);
while(n>0)
{
m++;
if(isprime(m) == 1)
n--;
}
printf("%d",m);
return 0;
}
#include<iostream>
using namespace std;
bool pd(int x)
{
if(x==2) return true;
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
return false;
}
return true;
}
int main()
{
int m;
cin>>m;//求第m个质数
int count=0;
int x=2;
while(count!=m)
{
if(pd(x))
count++;
x++;
}
cout<<x-1;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!望采纳,下列代码可以完成,已添加详细说明和注释。
代码过程为:
#include <stdio.h>
// 判断一个数是否为素数
int isprime(int n)
{
// 遍历 2 到 n/2 的所有数字
for(int i=2;i<=n/2;i++)
// 如果 n 能被 i 整除,返回 0
if(n%i==0)
return 0;
// 否则返回 1
return 1;
}
int main()
{
int n,m=1;
// 从标准输入读入一个数字 n
scanf("%d",&n);
// 遍历所有大于 1 的数字
while(n>0)
{
m++;
// 如果 m 是一个素数,将 n 减 1
if(isprime(m) == 1)
n--;
}
// 输出 m 到标准输出
printf("%d",m);
// 退出 main 函数
return 0;
}