您的位置:首页 > 编程语言 > C语言/C++

Problem A: C语言习题5.9--整数n和m之间的素数个数

2015-12-28 15:20 1066 查看
这就是人生,我想我们每个人都应该要学会忍受残缺的生命。

Description

小奶瓶都要上大三了,大一的高数还挂着呢,不光他头痛,教高数的”高”老师也是无奈,为了不必要的麻烦,”高”老师决定尽全力给小奶瓶加分,听说小奶瓶C语言学得不错,”高”老师就让他编写一个“求两个数之间的素数个数”的程序并许诺完成后给小奶瓶加59分。这样好的机会小奶瓶当然不能放过,但是他最近公务繁忙,不能及时完成这个程序。现在他把已经写的差不多的程序给你,让你帮他完成这个任务。请你帮帮这个可爱的小男生吧~

include<stdio.h>

int primes(int n,int m); /求n,m之间素数个数/

int is_prime(int n); /判断是否为素数/

int main()

{

int number; /素数个数/

int n,m;

scanf(“%d %d”,&n,&m);

number=primes(n,m); /调用求素数个数的函数,并将返回值赋值给number/

printf(“%d\n”,number);

return 0;

}

提交时只需提交primes和is_prime两个函数

Input

两个数

Output

两个数之间的素数个数

Sample Input

6 15

Sample Output

3

HINT

n不一定小于m~

#include <stdio.h>
int primes(int n,int m);    /*求n,m之间素数个数*/
int is_prime(int n);    /*判断是否为素数*/
int main()
{
int number; /*素数个数*/
int n,m;
scanf("%d %d",&n,&m);
number=primes(n,m); /*调用求素数个数的函数,并将返回值赋值给number*/
printf("%d\n",number);
return 0;
}int primes(int n,int m)
{
int a,b,s=0;
if(n>m)                     //将最小数赋给a 保证循环有效
{
a=m;
b=n;
}
else
{
a=n;
b=m;
}
for(int i=a+1;i<b;i++)      //循环调用is_prinme函数 判断n和m其中的素数
if(is_prime(i)==1) s++;
return s;
}

int is_prime(int n)
{
int i,r=0;
for(i=2;i<n;i++)            //循环判断是否是能整除 都不能则是素数
{
if(n%i==0) break;
}
if(i==n&&n!=2) r=1;        //此题2不是素数
return r;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: