题目描述
本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。
输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。
素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
要求定义并调用函数prime(p)判断p是否为素数,当p为素数时返回1,否则返回0。定义并调用函数prime_sum(m,n),该函数返回区间[m
,n
]内所有素数的和。
输入
两个正整数m和n(1≤m≤n≤500)
输出文章来源:https://www.toymoban.com/news/detail-779489.html
见样例文章来源地址https://www.toymoban.com/news/detail-779489.html
#include <stdio.h>
#include <math.h>
int prime( int p );
int PrimeSum( int m, int n );
int main()
{
int m, n, p;
scanf("%d %d", &m, &n);
printf("Sum of ( ");
for( p=m; p<=n; p++ ) {
if( prime(p) != 0 )
printf("%d ", p);
}
printf(") = %d\n", PrimeSum(m, n));
return 0;
}
int prime( int p )
{
int a=0;
if(p<2) return 0; // m<2时不是素数,直接返回0
else if(p==2) return 1; //m=2时直接返回1
else{
for(int i=2;i<p;i++){ // p 除以 2 ~ p-1 之间的所有整数,若能被整除,则 a+1
if( p%i==0)
a++;
}
//如果 a=0,说明在循环中没有任意一个整数能被 p 整除,即 p 是素数,返回 1
if(a==0) return 1;
//否则返回 0
else return 0;
}
}
int PrimeSum( int m, int n )
{
int sum=0;
if(m<0) m=2;
for( m; m<=n; m++)
{
if(prime(m)==1)
sum=sum+m;
}
return sum;
}
到了这里,关于C语言学习 使用函数求素数和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!