當前位置:首頁 » 編程語言 » 確定范圍內所有素數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;
}