當前位置:首頁 » 編程語言 » c語言求質素
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求質素

發布時間: 2023-05-01 15:34:27

c語言怎麼求素數

除2以外,素數皆為奇數,所以對2單獨處理,從3開始,將100以內的奇數逐一進行素數考察,是則輸出,不是則跳過。另設一計數變數控制換行,每輸出5個素數添加一個回車。代碼如下:

#include "stdio.h"

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

int i,n,t;

pr

#include

#include

main()

{

int a,i,flag,count=0;

for(a=1;a <=100;a++)

{

flag=0;

for(i=2;i

#include int main()

{

int i,n,k,b;

for(i=1,b=1;i<=100;i++)

{

for(n=2;n {

k=i%n;

if(k==0)

break;

}

(1)c語言求質素擴展閱讀:

C語言注意事項:

1、預編譯命令不是語言語句,不使用分號,不佔用運行時間。

2、在IDE中通常包括編輯器,編譯器,匯編器和鏈接器,在這個過程中是語言等級逐級降低的過程,從最高級的c語言到中級語言匯編語言再到低級語言機器語言,編輯器生成文橋如察件為.c文件,編譯器生成的文件為obj匯編器生成的文件橡租為.0文件,鏈接器生成的是exe文件。

3、注意 return和exit的區別, return是讓本函數運行結束,而exit是讓本程序運行結束。

4、在指針定義時,一定要進行初始化,否則就會出現意想不到的錯誤,如果不能找到對應地址賦值,那就賦給NULL(注意大寫)。

5、gets可以 scanf辦成辦不成的事,就是可以接受空格,puts在最後會輸出一個換敏茄行。

Ⅱ C語言編程、求100以內所有質素數

樓主大括弧都未能匹配,{有兩個,}有三個,編譯就通過不了的。
剛寫了份代碼,已調試通過,供樓主參考:
#include

main(void)
{
int
i,t;
for(i=1;
i<=100;
i++)
{
if(i
==
1)
continue;
if(i
==
2)
{
printf("%d,",i);
continue;
}
for(t=2;
t
<=
i/2;
t++)
{
if((i%t)
==
0)
break;
}
if(t
>
i/2)
{
printf("%d,",i);
}
}
printf("\n");
return
0;
}
輸出的結果為:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
再說說樓主代碼中一些錯誤:
1.之前提到編譯上就不能通過。{和}個數未能匹配。
2.
if(100%i!=0)
break;
該語句的含義是100除以i的虛祥余數不等於0則跳出循環,當為1時,就已經跳出循環了。而且這對於質素的判斷是毫無意義的,可以刪除。
3.
for(t=1;t<=i;t++)
質數的判斷的話,t應該是從2開始計差碼搏數的,否則i%1肯定是等於0的。應修改為for(t=2;
t<=i;
t++)。此外,這里可以參考我的代碼,t<=i/2即可,用以提高模答提升效率。
希望對樓主有所幫助。謝謝。

Ⅲ C語言問題,關於質素的推導,求大大解釋!

num%i 這個操作 叫模除 或陸雹者叫取余。

是求num除以i的余數搭悉前的。
於是 num%i==0 這個就是整除了。
於是 for循環 就是求知清因子的個數。
如果 除了1和本身外,因子個數為0,那麼 就是素數了。

Ⅳ 求"求素數的C語言程序"

#include <stdio.h>

int main()

{

int a=0;

int num=0;

int i;

printf("輸入一個整數:");

scanf("%d",&num);

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

if(num%i==0){

a++;

}

}

if(a==0){

printf("%d是素數。 ", num);

}else{

printf("%d不是素數。 ", num);

}

return 0;

}

(4)c語言求質素擴展閱讀:

質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。

基本演算法:若 k%m==0 則說明 k 不是素數。

判斷整數n是否為素數——採用枚舉法求解。

採用枚舉演算法解題的基本思路:

(1)確定枚舉對象、枚舉范圍和判定條件;

(2)枚舉可能的解,驗證是否是問題的解。

枚舉演算法的一般結構:while循環。

參考資料來源:網路-枚舉法




Ⅳ 用C語言編寫求質數的程序

//我分別寫出了求素數和判斷素數的程序
/*
//判斷一個數是否為素數
#include<stdio.h>
#include<math.h>
int
isprime(int);
void
main()
{
int
inumber;
printf("請輸入一個非負整數:
");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素數!\
",inumber);
else
printf("%d不是素數!\
",inumber);
}
int
isprime(int
a)
{
int
i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return
0;
return
1;
}
*/
/*****************************************************/
//求某個正整數以內的素數
#include"stdio.h"
#include"math.h"
int
main(void)
{
int
count,i,m,n,num;
printf("請輸入所求范圍(正整數):
");
scanf("%d",&num);
count=0;//count記錄素數的個數
printf("%d以內的素數為:\
",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素數
{
printf("%6d",m);
count++;
if(count%10==0)//count為10的倍數時換行
printf("\
");
}
}
printf("\
");
return
0;
}

Ⅵ C語言計算質數

#include<stdio.h>
staticcharm[8000000];
staticintprime[500000];
#defineMAX_N7368787
voidset(void)
{
inti,j;
for(i=2;i<=MAX_N;i++)
{
if(m[i]==1)continue;
for(j=i+i;j<=MAX_N;j+=i)
m[j]=1;
}
for(i=j=0;i<=MAX_N;i++)
if(m[i]==0)prime[j++]=i;
}

intmain()
{
intm,n,;
while(~scanf("%d%d",&m,&n))
{

for(i=m;i<=n;i++)
{
printf("%d",prime[i-1]);
if(i==n||(i-m)%10==9)putchar(' ');
elseputchar('');
}
}
return0;
}

Ⅶ 計算1到1000所有素數(質素)的和 C語言 求解題思路 最好有代碼 仔細研究下

int i,j;
for(i=1;i<=1000;i++)
{
for(j=2;j<i/2;j++)
{
if(i%j==0)
break;
}
if(j>=i/2)
printf("%d ",i);
}
素數就是只能被1和兄型畢它本身整除。如果1到該素數租搏的一羨芹半都沒有被整除的,以後就沒有能被整除的數了。

Ⅷ c語言求素數的演算法

根據素數的性質,代碼設計如下:

設計一:判斷n是否能被1~n-1整除,不能整除為素數

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

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

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

設計二:判斷n是否能被2~√n間的整數整除,不能整除為素數

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(8)c語言求質素擴展閱讀:

1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)

2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法

Ⅸ 求質數c語言

  • #include "stdafx.h"

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

    {

    int a=0;

    int b=2;

    int i=0;

    int n1=0;

    int n2=0;

    printf("請輸入所耐啟螞昌埋要求哪個范圍的質數 ");

    scanf("%d %d",&n1,&n2);

    for(a=n1;a<=n2;a++)

    {

    for(b=2;b<=a-1;b++)

    if(a%b==0) break;

    if(a<=b)

    printf("質數: %d ",a);

    }

    printf(" ");

    return 0;

    }

  • 3

    輸入你所要求某個范圍的質數,兩個數用【空格鍵】隔開。如輸入"180 200",

    輸出:

    質數: 181

    質數: 191

    質旁頃數: 193

    質數: 197

    質數: 199

Ⅹ C語言中如何求質數

#include<stdio.h>宏虧頃

int isprime(int n)

{ for(int i=2; i*i<=n; i++)

if(n%i==0)return 0;

return n>蔽陸1;

}

int main()

{ int i,n;

scanf("%d",&n);

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

if(isprime(i))

printf("%5d"空大,i);

return 0;

}