具体的题目大家可以再这个网址看:“牛客….”
我想说的是,在我的devc++上已经编译成功,而在网页上边却不行,为了防止自己想看,或者以后想到了方法解决,故写此博客。
#include "stdio.h"
#include "math.h"
/*****************
*函数名:find_index()
*作用:找出P(m)个素数的下标
*参数:int m -第几个素数
*返回值:传入参数的素数角标
*****************/
int find_index(int m){
int i = 0,j = 0,k = 0,count0,index = 0;
for(i=2;i<50000;i++){
k = (int) sqrt(i);
for(j = 2;j <= k;j++){
if(i%j==0) break;
}
if(j>k){
count0++;
}
if(count0 == m){
index = i;
break;
}
}
return index;
}
/*****************
*函数名:printf_result()
*作用:输出第m个和第n个素数之间的素数
*参数:int m -开始个数 int n-结束个数 int a-开始的下标
*返回值:无
*****************/
void printf_result(int m,int n,int a){
int i = 0,j = 0,k = 0,count=0;
for(i=a;i<50000;i++){
k = (int) sqrt(i);
for(j = 2;j <= k;j++){
if(i%j==0) break;
}
if(j>k){
m++;
count++;
printf("%d ",i);
if(count%10==0)
printf("\n");
}
if(n+1 == m){
printf("%d",count);
break;
}
}
}
//主函数
int main(){
int i=0,j=0,m=0,n=0,count=0;
while(scanf("%d %d",&m,&n)!=EOF){
int a = find_index(m);
//printf("%d",a);
printf_result(m,n,a);
}
return 0;
}