机试(六)
讯飞机试
一、
输入
第一行 1个数:输出的素数个数 n
第二行 n个数:n1 n2 ...(n1是第n1个素数,n2是第n2个素数)
第三行: 具体的 素数值
#include<iostream>
#include<cmath>
using namespace std;
const int N=100001;
int S[N]={0};
int H[N]={0};
bool IsNum(int n)
{
int flag=0;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=1;
break;
}
}
if(flag==0 )
{
return 1;
}
else
{
return 0;
}
}
int GetNum(int n)
{
int i=1;
int a=2;
while(i<=n)
{
if(IsNum(a)==1)
{
S[i]=a;
i++;
}
a++;
}
}
int main()
{
int h;
cin>>h;
for(int i=1;i<=h;i++)
{
cin>>H[i];
}
int Max=H[1];
for(int i=2;i<=h;i++)
{
if(Max<H[i])
{
Max=H[i];
}
}
GetNum(Max);
for(int i=1;i<=h;i++)
{
cout<<S[H[i]]<<endl;
}
return 0;
}

输出两个素数,第一个下标为1,第二个下标为3,分别为2 和5。
浙公网安备 33010602011771号