首页 > 技术文章 > 机试(六)

ruo-li-suo-yi 2018-05-30 20:59 原文

讯飞机试

一、

输入

第一行 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。

 

  

推荐阅读