当前位置:首页 » 编程语言 » 确定范围内所有素数c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

确定范围内所有素数c语言

发布时间: 2022-04-03 16:39:33

A. c语言中----求给定取值范围内所有素数之和;例如输入:4,7 输出:[4 7]范围内所有素数之和为12

修改最后一句话就可以了:

#include<stdio.h>
voidmain()
{
intt,x,y,sum=0,i,n,flag;
scanf("%d,%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
for(n=x;n<=y;n++)
{
for(i=2,flag=1;i<n;i++)
if(n%i==0) flag=0;
if(flag==1)
sum+=n;
}
printf("[%d%d]范围内所有素数之和为%d ",x,y,sum);//修改这句话就OK
}

B. c语言编程求给定区间内所有可逆素数

代码写得较乱,以下给出结构较清晰的同功能代码,供对照查错:
#include
<stdio.h>
#include
<stdlib.h>
//判断给定值是否为素数
int
isPrime(
int
num
)
{
int
v;
for(
v=2;
v<=(num/2);
v++
)
{
if(
num
%
v
==
0
)
return
0;
}
return
1;
}
//反转给定值
int
numReverse(
int
num
)
{
int
i,
val=0;
for(
i=0;
num;
i++
)
{
val
*=
10;
val
+=
(num
%
10);
num
/=
10;
}
return
val;
}
#define
MAX(a,b)
((a)>(b)?(a):(b))
int
main(
int
argc,
char
**
argv
)
{
int
i,
r,
sv,
ev,
cnt=0;
do
{
printf(
"Please
input
two
integers:
"
);
scanf(
"%d
%d",
&sv,
&ev
);
}
while(
(sv
>=
ev)
);
//此处保证数值区间距离非零非负
sv
=
MAX(sv,2);
//此处保证跳过非合数非素数的数值1
for(
i=sv;
i<=ev;
i++
)
{
if(
i>9
)
//此处保证忽略测试小于10的值
{
r
=
numReverse(
i
);
//若两数均为素数且两数不相等
if(
isPrime(
i
)
&&
isPrime(
r
)
&&
(i!=r)
)
{
printf(
"%d
&
%d\n",
i,
r
);
cnt++;
}
}
}
printf(
"Count
=
%d\n",
cnt
);
return
0;
}

C. 查找范围内的素数,C语言

我怎么觉得你求素数的方法有点怪,话说求num是否素数正常应该是i由2循环到根号n,在循环中num对i求余,若余为0则是素数,然后break,这个好像比你那个快很多……

D. 用C语言写一个调用函数,求出一个范围内的素数,范围自己输入

#include<stdio.h>
#include<math.h>
intprime(inta,intb)//求出整数a-b范围内的所有素数
{
inti=2,j,n;
for(j=a;j<=b;j++)
{
n=sqrt(j)+1;//j的平方数+1
i=2;
while(i<n)
{
if(j%i==0) //整除,退出循环
break;
i++;
}
if(i==n)//非整除退出循环,i肯定等于n
printf("%d",j); //j是素数,输出
}
}
intmain()
{
inta,b;
scanf("%d%d",&a,&b);//输入整数范围a-b
prime(a,b);
return0;
}

E. C语言求范围之内素数的和与个数

按照你的要求编写的C语言程序如下

#include<stdio.h>

int f(int x) //定义判断素数的函数

{

int n,flag=1;

if(x==1) return 0;

for(n=2;n<x;n++)

if(x%n==0)

flag=0;

return flag;

}

int main()

{

int i,N,M,count=0,sum=0;

scanf("%d%d",&N,&M);

for(i=N;i<=M;i++){

if(f(i)==1){

count++;

sum=sum+i;

}

}

printf("%d到%d之间共有%d个素数,它们的和为%d",N,M,count,sum);

return 0;

}

F. C语言程序 要求输出区间[100-200]内的所有素数

举个例子,118是合数,但是118%10是不等于0的,所以isprime=1,这个时候循环就停止了,函数返回1,所以就输出了。函数的问题在于isprime的值一直在变

G. 如何用C语言判断一定范围内的素数

什么都不说了,直接上代码
#include <Stdio.h>
bool isPrim(int num) {
for(int i = 2; i <= num/2; i++) {
if( num%i == 0) {
return false;
} else {
continue;
}
}
return true;
}
void main() {
int num, count;
printf("请输入查找素数的最大范围: ");
scanf("%d", &num);
for(int j = 2; j <= num; j++) {
if(isPrim(j)) {
if(count%10 ==0) {
printf("\n");
}
printf("%6d ",j);
count++;
}
}
printf("\n");
}

H. C语言 求素数,把一定范围内的素数打印出来,为什么这样写

n值记录的是素数的个数,
printf("%d",m);//如果m是素数,就打印出来
n=n+1;//计数器就加一
if(n%n==0)
printf("\n");这只是为了打印一个回车

I. C语言问题!找出100以内的全部素数

#include<stdio.h>

intIsPrime(intn)
{
if(n<=1)return0;
if(n%2==0)returnn==2;

for(inti=3;;i+=2)
{
if(i>n/i)break;//等价于i*i>n,不用开方
if(n%i==0)return0;
}
return1;
}

intmain()
{
for(intn=0;n<100;n++)
if(IsPrime(n))
printf("%d",n);
return0;
}