编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数。

2024-12-02 20:19:57
推荐回答(2个)
回答1:

//编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数。要求定义并调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。

#include

int prime(int m);

int main(int argc, const char * argv[]) {

int m,n,i,j,sum = 0;

printf("请输入两个正整数\n");

scanf("%d,%d",&m,&n);

for (i = m; i <= n; i++) {

j = prime(i); //调用prime(m)函数

if (j == 1) {

sum++; //统计素数个数

printf("%d 是素数\n", i);

}

else

printf("%d 不是素数\n",i);

}

printf("sum = %d",sum); //输出素数个数

}

int prime(int m) //判断m是不是素数的函数

{

int i,f = 0;

if (m == 2) {

f = 1;

}

for (i = 2; i < m; i++) {

if (m % i == 0) {

f = 0; //m不是素数时

break;

}

else

f = 1; //m是素数

}

return f;

}

回答2:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int prime(int n){
    int i;
    if(n>2 && !(n&1) || n<2)return 0;
    for(i=3; i*i<=n;i+=2)
        if(!(n%i)) return 0;
    return 1;
}
int main(void){
    int x,m,n;
    while(1){
        printf("Input 2 positive integers m & n(m        if(scanf("%d%d",&m,&n),m>0 && m        printf("Error, redo: ");
    }
    for(x = m<3 ? 1 : 0,m+=!(m&1);m<=n;x+=prime(m),m+=2);
    printf("The result is %d\n",x);
    return 0;
}