求n到m之间的素数并输出

糖糖没有果 2019-03-04 10:50:18
题目描述 求n到m以内的素数(包含n,m,且m>=n>=1,n<=m<=100)n和m由键盘输入(每个素数后面带一个空格) 要求:(1)编写如下接口的功能函数:int fun(int n),该函数的功能是判断n是不是素数。若是,返回1,若不是返回0。 (2)main函数去调用该功能函数。 输入 7,15(注意带有,号) 输出 7 11 13
...全文
2096 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2019-03-05
  • 打赏
  • 举报
回复
这个很基础啦。
  • 打赏
  • 举报
回复
唯一可以优化一下的是素数判断:

#include <stdio.h>
#include <math.h>

inline int isprime(int n)
{
if (n == 2 || n == 3) return 1;
if (n < 5) return 0;
if (n % 6 != 1 && n % 6 != 5) return 0;

for (int i = 3; i <= sqrt((float)n); i += 2)
if (!(n % i)) return 0;

return 1;
}

int main()
{
int n, m;

scanf("%d,%d", &n, &m);
if (n > 0 && m >= n)
{
for (; n <= m; n++)
if (isprime(n)) printf("%d ", n);
puts("");
}

return 0;
}

我不懂电脑 2019-03-05
  • 打赏
  • 举报
回复 2
#include<stdio.h>
#include<math.h>

int main()
{
int N, M, x=2, sum=0;
int i, isPrime, cnt=0;
scanf("%d %d", &N, &M);
if( N>0 && N<=M && M<=200 ){
while( cnt<M ){
isPrime=1;
for( i=2; i<=sqrt(x); i++){
if( x%i==0 ){
isPrime=0;
break;
}
}
if( isPrime==1 ){
cnt++;
if( ( cnt>=N )&&( isPrime==1 ) )
sum=sum+x;
}
x++;
}
}
printf("%d", sum);

return 0;
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧