选择......c++++

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:33:59
Problem
LLK是一名04级的牛人,他拿到了CMU跟UPen的Offer。但这让他很为难,去哪间好呢?突然他想起了他有一件宝物,它能预测他去哪间学校更有利于他以后的发展,而这件宝物的重量为W。虽然LLK已将所有宝物按重量大小从小到大排出来了,但他的宝物太多了,如果从头一个个物品慢慢找要花很长时间。不过这些宝物的重量有一个特性,它们的重量都是素数,而且每个物品的重量都与每个素数对应,例如第1个物品的重量是2,第2个物品是3,第3个物品是5...。以下是物品的重量序列:2,3,5,7,11,13...... 亲爱的师弟师妹们,你们可以帮帮他吗?

Input
一个素数W(2<=W<10^6),表示要找到宝物的重量;测试数据有多组,W为-1时,表示结束。

Output
一个整数,输出要找到的宝物是第几个。

Sample Input
Copy to clipboard
5
-1

Sample Output
3
不会,有完整的代码吗??

#include<iostream>
#include<cmath>
using namespace std;
int fun1(int n)//素数判断函数
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int fun(int num)//位置查找函数
{
int count=0;
if(fun1(num)==0)
{
cout<<num<<"不是素数。" <<endl;
return 0;
}
else for(int i=2;;i++)
{

if(fun1(i))
{
count++;
if(i==num)
{
cout<<num<<"的位置为:"<<endl;
return count;
}
}
}

}
void main()
{
cout<<"input the data,end by -1:"<<endl;
int a[100];
cin>>a[0];
int i=0;
while(a[i]!=-1)
{
i++;
cin>>a[i];
}
for(int j=0;j<i;j++)
{
cout<<fun(a[j])<<endl;
}
}

你会写判定素数的程序吗?如果会,