应用以下条件使用函数求素数和

使用函数求素数和:输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义并调用函数prime(p)判断p是否为素数,当p为素数时返回1,否则返回0。定义并调用函数prime_sum(m,n),该函数返回区间[m,n]内所有素数的和。
输入输出示例:
Enter m,n:-1 10
Sum of(2 3 5 7)=17

#include <stdio.h>
int prime(int p){
    if(p<2) return 0;
    int i;
    for(i=2;i<p;i++){
        if(p%i==0){
            return 0;
        }
    }
    return 1;
}
int prime_sum(int m,int n){
    int i,f = 1,sum=0;
    for(i=m;i<=n;i++){
        if(prime(i)){
            if(f == 1){
                printf("%d",i);
                f = 0;
            }else{
                printf(" %d",i);
            }
            sum+=i;
        }
    }
    return sum;
}
int main(){
    int m,n,i;
    printf("Enter m,n:");
    scanf("%d %d",&m,&n);
    printf("Sum of(");
    int sum = prime_sum(m,n);
    printf(")=%d",sum);
    return 0;
}

#include <stdio.h>
int p[505];
int plen;
int prime(int p){
    if(p<2)return 0;
    int isp=1;
    for(int i=2;i<p;i++){
        if(p%i==0){
            isp=0;
            break;
        }
    }
    return isp;
}
long prime_sum(int m,int n){
    
    int c=0;
    long sum=0;
    for(int i=m;i<=n;i++){
        if(prime(i)){
            sum+=i;
            p[c++]=i;
        }
    }
    plen=c;
    return sum;
}
int main(void) { 
    printf("Enter m,n:");
    int m,n;
    scanf("%d %d",&m,&n);
    long sum = prime_sum(m,n);
    printf("Sum of(");
    for(int i=0;i<plen;i++){
        printf("%d",p[i]);
        if(i!=plen-1)printf(" ");
    }
    printf(")=%d",sum);
    return 0;
}