C语言程序 判断m-n之间的素数有几个、分别是哪些。m-n范围可以任意指定

如题所述

下面是代码:

#include <iostream>
#include <cmath>
using namespace std;

bool isPrime(int num)
{
if (num < 2)
{
return false;
}
for (int i = 2, tmp = (int)sqrt(num); i <= tmp; ++i)
{
if (num % i == 0)
{
return false;
}
}
return true;
}

int main()
{

int m, n;
cout << "请输入 m 和 n:";
cin >> m >> n;
int count = 0;
int primes[n - m];
for (int i = m; i <= n; ++i)
{
if (isPrime(i))
{
primes[count] = i;
count++;
}
}
cout << "m~n 的素数个数:" << count << endl;
cout << "分别是:" << endl;
for (int i = 0;i < count; i++)
{
cout << primes[i] << endl;
}

return 0;
}

编译运行:

追问

你这是C还是C++啊

追答#include <stdio.h>
#include <math.h>
 
int isPrime(int num)
{
    if (num < 2)
    {
        return 0;
    }
int i, tmp;
    for (i = 2, tmp = (int)sqrt(num); i <= tmp; ++i)
    {
        if (num % i == 0)
        {
            return 0;
        }
    }
    return 1;
}
 
int main()
{
 
    int m, n, i;
    printf("请输入 m 和 n:");
scanf("%d %d",&m, &n);
    int count = 0;
    int primes[n - m];
    for (i = m; i <= n; ++i)
    {
        if (isPrime(i))
        {
            primes[count] = i;
            count++;
        }
    }
printf("%d ~ %d的素数个数:%d",m, n, count);

    for (i = 0;i < count; i++)
    {
printf("%d\n",primes[i]);
    }
 
    return 0;
}

C 代码来了。

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言程序 判断m-n之间的素数有几个、分别是哪些。m-n范围可以任意指定...
cin >> m >> n;int count = 0;int primes[n - m];for (int i = m; i <= n; ++i){if (isPrime(i)){primes[count] = i;count++;}}cout << "m~n 的素数个数:" << count << endl;cout << "分别是:" << endl;for (int i = 0;i < count; i++){cout << pr...

C语言程序题,判断m-n之间的素数有几个、分别是哪些。m-n范围可以任意指...
=1) { printf("分别是:%d ",k); c++; } } printf("共 %d 个",c); printf("\\n"); }自己试试~

c语言 输出[m,n]之间素数 的程序
1 输入m和n;2 对[m,n]的整数进行遍历。3 对每个数值进行判断,如果是素数,则输出。代码:include <stdio.h>#include <math.h>int is_prime(int n){int i;for(i = 2; i <= sqrt(n); i ++)if(n%i == 0) return 0;return 1;}int main(){ int m,n,i; scanf("%d%d...

求m~n之间所有的素数。m和n的值由用户键入。为使程序结构清晰,设置一个...
printf("%d到%d中的所有素数为:\\n",b,a);for(m=2;m<=a;m++){ k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)\/\/判断m是否为素数 { break;} if(i>k){ printf("%d ",m);n=n+1;if(n%10==0)\/\/每输出10个数换一次行 { printf("\\n");} } } printf("\\n");} main(...

C语言求助,《求m和n之间的所有素数》
你的第二层for循环后面好像缺失一个“{”;要注意代码格式,你这个代码格式读起来很痛苦哦 思路应该是:第一层for循环是循环m到n之间,{第二层for循环判断这个数是不是素数,是的话就输出;然后再判断这一行有没有6个了,有6个就输出一个换行} ...

C语言编程:计算并输出正整数[M,N]之间的素数之和及素数的个数,其中1...
if(scanf("%d%d",&M,&N)==2 && M>1 && M<N){\/\/输入M和N并判断 for(M==2 ? (k=1,sum=2) : k=sum=0,M+=!(M&1);M<=N;M+=2){\/\/求素数 for(t=3;t*t<=M;t+=2)if(!(M%t))break;if(t*t>M)\/\/是素数时统计和及个数 sum+=M,k++;} printf("%d %d\\n"...

c语言求求n到m以内的素数(包含n,m,且m>=n>=1,n<=m<=100)n和m由键盘输...
C语言求n到m以内的素数,并以自定义函数判断素数,参考代码如下:include<stdio.h>int fun(int n){ int i; if(n<=1) return 0; for(i=2;i<n;++i) if(n%i==0) return 0; return 1;}int main(){ int i,m,n;scanf("%d%d",&n,&m);if((n>m)||(n<1|...

C语言m~n之间的素数
{ int m,n,i;int isPrime(int);scanf("%d %d",&m,&n);for(i=m;i<=n;i++)if(isPrime(i))printf("%d ",i);} int isPrime(int x) \/\/这个才是判断是否素数的函数,是返回1,不是返回0 { int i,flag=1;for(i=2;i<=sqrt(x);i++)if(x%i==0){ flag=0;break;} return...

大一c语言的题目。输出m-n之间所有的素数
应将k=sqrt(m);删除。在a=1;的前面加上 k=sqrt(j);附上程序:include <stdio.h>#include <math.h>void main(void){ int i,j,m,n,k,s,a,b=0; scanf("%d",&n); scanf("%d",&m); for(j=n;j<m;j++) { k=sqrt(j); \/\/程序改进 在此行 a=1; for(i...

c语言:输出m到n之间的所有素数,包括m和n。(100<m,n<1000)我是这样写的...
h> int main(){ int m, n, i, leap, j;leap = 1;scanf("%d%d", &m, &n);for (j = m; j <= n; j++){ for (i = 2, leap = 1; i <= j - 1; i++){ if (j % i == 0){ leap = 0;break;} } if (leap == 1)printf("%d ", j);} return 0;} ...

相似回答