首页 > 学院 > 开发设计 > 正文

poj1595

2019-11-10 18:29:52
字体:
来源:转载
供稿:网友

题目大意:

和zoj1312是同一道题。给一个整数N,算出1到N有多少个素数,然后给一个C,从这些素数中间位置开始,输出C*2或(C*2)-1个素数

解题思路:

代码如下:

#include<stdio.h>#include<stdlib.h>int PRime(int n){ int i; for(i=2;i*i<=n;i++) { if(n%i==0) { return 0; } } return 1;}int main(){ int n,c,i,j,m; int num[1010]; while(scanf("%d%d",&n,&c)!=EOF) { memset(num,0,sizeof(num)); num[1]=1; j=2; for(i=2;i<=n;i++) { if(prime(i)) { num[j++]=i; } } printf("%d %d:",n,c); m=j-1; if(m%2==0) { if(c*2>=m) { for(i=1;i<=m;i++) { printf(" %d",num[i]); } printf("/n/n"); } else { for(i=m/2-c+1;i<=m/2+c;i++) { printf(" %d",num[i]); } printf("/n/n"); } } else { if(2*c-1>=m) { for(i=1;i<=m;i++) { printf(" %d",num[i]); } printf("/n/n"); } else { for(i=m/2-c+2;i<=m/2+c;i++) { printf(" %d",num[i]); } printf("/n/n"); } } } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表