3592 - b4
请编写一个函数 void fun(int m,int k,int xx[]),该函数的 功能是:将大于整数 m 且紧靠 m 的 k 个素数存入 xx 所指的数 组中。
题目输入
输入有多组样例。
输入两个整数,m和k(1<m,k<100) 。两个都是整数。
题目输出
输出结果, 每两个数之间空格隔开,行末没有空格。
输入/输出样例
题目输入
17 5
题目输出
19 23 29 31 37
C语言解答
#include<stdio.h> #include<stdlib.h> int fact(int x) { int i; int flag=0; for(i=2;i<x;i++) { if(x % i ==0) break; } if(i == x) flag =1; return flag; } void fun(int m,int k,int xx[]) { int count=0; int i; for(i=0;i<k;i++) { do { m++; }while(!fact(m)); xx[i]=m; } } int main() { int n; int x; int a[100]; int i; while(scanf("%d %d",&n,&x)!=EOF) { fun(n,x,a); for(i=0;i<x;i++) { if(i!=x-1) printf("%d ",a[i]); else printf("%d",a[i]); } printf("\n"); } return 0; }
C++解答
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> #include <string.h> #include<algorithm> #include<iostream> using namespace std; int fact(int x) { int i; int flag=0; for(i=2;i<x;i++) { if(x % i ==0) break; } if(i == x) flag =1; return flag; } void fun(int m,int k,int xx[]) { int count=0; int i; for(i=0;i<k;i++) { do { m++; }while(!fact(m)); xx[i]=m; } } int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); int n; int x; int a[100]; int i; while(scanf("%d %d",&n,&x)!=EOF) { fun(n,x,a); for(i=0;i<x-1;i++) { printf("%d ",a[i]); } printf("%d\n",a[i]); } return 0; }