zoukankan      html  css  js  c++  java
  • 华为机试——求两个数之间的素数

    C_C++_XY_03. 求两个数之间的素数

    • 题目描述:

    题目描述:给2个数,求这两个数字之间的素数个数,并将素数的个数返回,将求出的素数输出至pOut中。

    对于如下函数即求[pInput[0], pInput[1]]之间的素数,将得到的素数输出至pOut中,返回素数的个数。

    认为只能够被1和它本身整除的数字是素数。

    • 要求实现函数:

    int vDecode(int* pInput, int iLen, int *pOut);

    【输入】pInput: 输入数组;

    iLen: 输入长度

    pOut: 输出长度

    【返回】 返回输出数组的长度

    【注意】 只需要完成该函数功能算法,中间不需要有任何IO的输入输出

    • 示例

    输入:pInput[0] = 2, pInput[1] = 8,即求[2,8]之间的素数

    输出:3,5,7

    返回:3

    这里题意不清——应该不包括2,但包括8吗?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48

    #include <iostream>
    #include <math.h>
    using namespace std;
     
    int vDecode(int* pInput, int iLen, int *pOut)
    {
        if ((pInput == NULL) || (pInput[0] > pInput[1]) || (pInput[1] < 2) || (iLen < 2) || (iLen > 2))
        {
            *pOut = '';
            return 0;
        }
     
        int count = 0;
        for (int i = pInput[0]+1; i < pInput[1]; i++)
        {
            int k = sqrt(i);
     
            int j;
            for (j = 2; (j <= k) && ( i % j != 0); j++)
            {
                ;
            }
     
            if (j > k)
            {
                *pOut = i;
                pOut++;
                count++;
            }
        }
        *pOut = '';
        return count;
    }
     
    int main() {
        int a[2] = {2,8};
        int pOut[10];
     
        vDecode(a, 2,pOut);
     
        int *tmp = pOut;
        while (*tmp != '')
        {
            cout << *tmp << endl;
            tmp++;
        }
        return 0;
    }
  • 相关阅读:
    《剑指offer》第三十五题(复杂链表的复制)
    《剑指offer》第三十四题(二叉树中和为某一值的路径)
    分支限界法
    回溯法小实例
    BUFSIZ解析
    ofstream和ifstream详细用法
    回溯法——最大团问题(Maximum Clique Problem, MCP)
    位运算应用之二——大小写转换
    回溯法——n后问题
    回溯法——批处理作业调度
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3192392.html
Copyright © 2011-2022 走看看