练习4-11 统计素数并求和 (20 分)

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1MN500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

提交:

#include <stdio.h>
//素数,除了1和它本身外不能被任何整数整除的数
int df (int num) {//该函数没有处理1和本身
    for (int i = 2;i<num;i++) {
        if (num%i==0) return 0;//只要有一次整除,就不是素数返回 0
    }
    return num;//除了1和它本身外不能被任何整数整除的数 默认返回素数本身
}

int main() {

    int m,n,count=0,sum=0;
    scanf("%d %d",&m,&n);
    for (m;m<=n;m++) {//10 31 : 11 13 17 19 23 29 31
        if (m == 1) ;//M==N,0 处理1
        else {//包含M和N取最大边界
            if (df(m) !=0 ){
                sum += df(m);
                count++;
            }
        }
    }
    printf("%d %d",count,sum);
    return 0;
}
原文地址:https://www.cnblogs.com/cgy-home/p/15071740.html