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;
}