![](https://cos-cdn.shuashuati.com/pipixue-web/2020-1231-2005-12/ti_inject-812ce.png)
素数累加 算法的效率很大程度上决定了程序的效率。例如,对于 ”判断某个大于等于 3 的整数是否是素数“的算法,有以下两个方式来避免多余计算: 1. 仅当该数是奇数才做进一步检查,因为偶数必然是素数( 2 除外); 2. 寻找该数的约数时,上界设为该数的平方根即可; 根据以上思路,完成下列程序。该程序接受输入 M 和 N ,约定 3<=M<=N<=100 ;程序寻找区间 [M, N] 内的素数并累加,最后还一并输出检查过的整数的个数、素数个数。 样例如下: · 输入 1:3 20 · 输出 1:We checked 9 numbers in [3, 20], and found 7 prime numbers, sum of them is 75. #include < > #include
int main () { int M, N, isPrime, total = 0 , count = 0 , sum = 0,j ; scanf ( "%d %d" , &M, &N); int i = (M % 2 == 0 ? M + 1 : M); for (; i <= N; ) { total++; isPrime = 1 ; for ( j = 3 ; j <= ( int ) sqrt (i); ++j) { if ( ) { isPrime = 0 ; break ; } } if (isPrime) { count++; sum += i; } } printf ( "We checked %d numbers in [%d, %d], and found %d prime numbers, sum of them is %d.\n" , total, M, N, count, sum); return 0 ; }