用C语言写出求素数的编程?

2024-11-30 04:52:03
推荐回答(5个)
回答(1):

参考代码:
int main(){
int num,m,n,d,c,priSum;
printf("Enter the Range Between m,n ");
scanf("%d %d", &m,&n);
for (num = n; num <= m; num++)
{
for(d = 2; d < num; d++)
{
if (num % d == 0){
continue;
}
}

if (d == num){
priSum += d;
c++;
}
}
printf("m~n之间的素数个数:%d,和 %d ",c,priSum);
return 0;
}

回答(2):

//示例程序如下
/*
*程序描述:数入N,M,代表求素数得范围,N小于M。求在这个范围内的素数个数,素数之和。
*/

#include
#include

//判断整数是否为素数
int isPrime(int n)
{
int i;
for(i=2;i<=(int)sqrt(n);i++)
if(n%i == 0)
return 0;
return 1;
}

int main()
{
int N,M;
int i,count=0,sum=0;

printf("Input N,M: ");
scanf("%d%d",&N,&M);
if( N > M) //交换两数的值
{
M = M + N;
N = M - N; //将原来的M的值赋值给N
M = M - N; //将原来的N的值赋值给M
}
if(M < 2){
printf("Between %d~%d prime_number count:%d, sum=%d\n", N,M,count,sum);
return -1;
}
if( N < 2)
N = 2;

for(i=N; i<=M; i++)
{
if(isPrime(i)){
count++;
sum += i;
}
}
printf("Between %d~%d prime_number count:%d, sum=%d\n", N,M,count,sum);
return 0;
}
示例运行结果:
F:\c_work>test2.exe
Input N,M: 2 100
Between 2~100 prime_number count:25, sum=1060

F:\c_work>test2.exe
Input N,M: 1 20
Between 2~20 prime_number count:8, sum=77

F:\c_work>test2.exe
Input N,M: 10 100
Between 10~100 prime_number count:21, sum=1043

回答(3):

#include
void main()
{
int N,M,i,j,s=0,n=0;
printf("please input number M and N: ");
scanf("%d%d",&M&N);
for(i=N;i<=M;i++)
for(j=2;j<i;j++)
if(i%j==0)
s+=i,n++;break;
printf("素数的和%d\n素数的个数%d",s,n);
}

回答(4):

这种基本的算法应用程序还是应该自己好好学习自己编写出来。

回答(5):

没有问题,我可以。