1. int zhizhen(int *p, int n)函数
#include <cmath>
int zhizhen(int *p, int n)
{
    int cnt = 0;
    for (int i = 0; i < n; i++)
    {
        int num = *(p + i);
        bool flag = true;
        if (num <= 1)
            flag = false;
        else
        {
            int sqrtnum = sqrt(num);
            for (int j = 2; j <= sqrtnum; j++)
            {
                if (num % j == 0)
                {
                    flag = false;
                    break;
                }
            }
        }
        if (flag)
            cnt++;
    }
    return cnt;
}
  1. int shuzu(int *ar, int n)函数
int shuzu(int *ar, int n)
{
    int cnt = 0;
    for (int i = 0; i < n; i++)
    {
        int num = ar[i];
        bool flag = true;
        if (num <= 1)
            flag = false;
        else
        {
            for (int j = 2; j < num; j++)
            {
                if (num % j == 0)
                {
                    flag = false;
                    break;
                }
            }
        }
        if (flag)
            cnt++;
    }
    return cnt;
}

以上两个函数都采用了试除法的思路,对于每个数,从2到sqrt(num)尝试除以每个数,如果存在一个数可以整除,则不是素数,否则是素数。其中zhizhen函数使用了指针访问数组元素,而shuzu函数使用了数组下标访问数组元素。

请用C++编写两个函数int zhizhenint pint nint shuzuint arint n用于计算实参数组中元素值为素数的元素个数形参n对应的实参存储数组单元元素的个数

原文地址: https://www.cveoy.top/t/topic/bZWa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录