要求定义并调用函数prime(p)判断p是否为素数,当p为素数是返回1,否则返回0,并调用函数prime-sum(m,n)该函数返回区间(m,n)内所有素数的和

img


输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。要求定义并调用函数prime(p)判断p是否为素数,当p为素数是返回1,否则返回0,并调用函数prime-sum(m,n)该函数返回区间(m,n)内所有素数的和

函数的调用,代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int prime(int p)
{
    int i;
    if (p < 2)
        return 0;
    for (i = 2; i < p; i++)
    {
        if (p % i == 0)
            return 0;
    }
    return 1;
}

int prime_sum(int m, int n)
{
    int sum = 0, i;
    int nmb = 0;
    printf("Sum of (");
    for (i = m; i <= n; i++)
    {
        if (prime(i))
        {
            if (nmb == 0)
                printf("%d", i);
            else
                printf(" %d", i);
            nmb++;
            sum += i;
        }
    }
    printf(")=%d\n", sum);
    return sum;
}

int main()
{
    int m, n, sum = 0;
    printf("Enter m,n:");
    scanf("%d %d", &m, &n);
    sum = prime_sum(m, n);
    return 0;
}

供参考:

#include<stdio.h>
int isPrime(int n)
{
    int i;
    if (n <= 3) return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}
int PrimeSum(int m, int n) 
{
    int i, sum = 0;
    for (i = m; i <= n; i++)
        if (isPrime(i))
            sum = sum + i;
    return sum;
}
int main()
{
    int m, n, p, k = 0;
    scanf("%d %d", &m, &n);
    printf("Sum of(");
    for (p = m; p <= n; p++) {
        if (isPrime(p))
            printf(k++ == 0 ? "%d" : " %d", p);
    }
    printf(")= %d", PrimeSum(m, n));
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632