求大于整数m且紧靠m的k个素数 及 判断一个数是否为素数的方法

题目:

  请编写一个函数void fun(int m,int k ,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

  例如,若输入:17,5,则应输出:19,23,29,31,37。

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。

 1 #include<stdio.h>
 2 #include<math.h>
 3  
 4 bool isPrime(int n)
 5 { 
 6     for(int i = 2 ; i <= sqrt(n) ; i++)
 7     {
 8         if(n % i == 0)
 9             return false;
10     }
11     return true;
12 }
13  
14 void fun(int m , int n , int xx[])
15 {
16     int count = 0;
17     for(int j = m + 1 ; count < n ; j++)
18     {
19         if(isPrime(j))
20         {
21             xx[count++] = j;                   
22         }      
23     }
24 }
25  
26 int main()
27 {
28     int m , n , zz[1000];
29     printf("please input two integers: ");
30     scanf("%d,%d",&m,&n);
31  
32     fun(m , n , zz);
33  
34     for( m = 0 ; m < n ; m++)
35     {
36         printf("%d  " , zz[m]);
37     }
38     printf("\n");
39  
40     return 0;
41 }

 --------------------------------------------------------------------------------------------------------------------------------------------------------------

现在再看到上面写的代码,觉得以前写的代码,竟然开了那么大的数组,代码挺粗糙的。

 1 #include<iostream>
 2 #include<math.h>
 3 using namespace std;
 4  
 5 bool isPrime(int n)
 6 { 
 7     for(int i = 2 ; i <= sqrt(n) ; i++)
 8     {
 9         if(n % i == 0)
10             return false;
11     }
12     return true;
13 }
14  
15 void fun(int m , int n , int xx[])
16 {
17     int count = 0;
18     for(int j = m + 1 ; count < n ; j++)
19     {
20         if(isPrime(j))
21         {
22             xx[count++] = j;                   
23         }      
24     }
25 }
26  
27 int main()
28 {
29     int m , n ;
30     int *zz = new int[];
31 
32     cout<<"please input two integers:";
33     cin>>m>>n;
34  
35     fun(m , n , zz);
36  
37     for( m = 0 ; m < n ; m++)
38         cout<<zz[m]<<" ";
39 
40     cout<<endl;
41  
42     return 0;
43 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

数论部分第二节:埃拉托斯特尼筛法 埃拉托斯特尼筛法

埃拉托斯特尼筛法 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。怎么判断n以内的哪些数是质数呢? 埃拉托斯特尼筛法 厄...

29570
来自专栏数据结构与算法

1430 素数判定

1430 素数判定 题目描述 Description 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。 素数在数论中有...

37860
来自专栏数据结构与算法

1008 选数 2002年NOIP全国联赛普及组

1008 选数 2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果 ...

30070
来自专栏Fish

蓝桥杯 幸运数

先说题意。题意有点长,我还是复制粘贴吧。。。 问题描述 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 首先从1开始写出自然数1,...

34460
来自专栏码匠的流水账

聊聊storm TridentTopology的构建

storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java

12520
来自专栏码匠的流水账

聊聊storm的PartialKeyGrouping

storm-core-1.2.2-sources.jar!/org/apache/storm/grouping/PartialKeyGrouping.java

12430
来自专栏码匠的流水账

聊聊storm的PartialKeyGrouping

storm-core-1.2.2-sources.jar!/org/apache/storm/grouping/PartialKeyGrouping.java

13320
来自专栏猿人谷

求大于整数m且紧靠m的k个素数 及 判断一个数是否为素数的方法

题目:   请编写一个函数void fun(int m,int k ,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。 ...

19290
来自专栏ml

NYOJ-----素数环

素数环 时间限制:1000 ms  |           内存限制:65535 KB 难度:2 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相...

31660
来自专栏数据结构与算法

黑科技系列

若询问区间为$(l, r)$,则只需判断$(l + d, r)$和$(l, r - d )$是否相同

7020

扫码关注云+社区

领取腾讯云代金券