zoukankan      html  css  js  c++  java
  • 求大于整数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("
    ");
    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 }
  • 相关阅读:
    java加密算法-MD5
    java加密算法-DES
    java加密算法-AES
    java写入内容到本地文件 -读取文件内容
    java 图片base64互转
    java上传文件
    判断请求是否是同一个域名
    java计算两个经纬度之间的距离
    java请求url可以带参数
    Java编程基础篇第五章
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3198354.html
Copyright © 2011-2022 走看看