A. 如何用窮舉法在1—100之間找出所有的質數用c語言編程實現
對1-100的所有數進行遍歷,逐一判斷每個數是否為素數。
判斷素數的演算法有很多,比較基礎的是逐一求余,如果除了1和本身外,還有其它數可以整除那麼就不是素數。
代碼如下:
#include<stdio.h>
intmain()
{
inti,j;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)break;//可以整除,退出循環。代表不是素數。
}
if(j==i)//沒有提前退出循環,代表是素數,列印。
printf("%d,",i);//列印i值。
}
return0;
}
B. 如何用c語言判斷一個數是不是素數
判斷一個整數m是否是素數,只需把m被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。思路1)的代碼:
#include <stdio.h>
int main(){
int a=0; // 素數的個數
int num=0; // 輸入的整數
printf("輸入一個整數:");
scanf("%d",&num);
for(int i=2;i<num;i++){if(num%i==0){a++; // 素數個數加1}}
if(a==0){printf("%d是素數。 ", num);}else{printf("%d不是素數。 ", num);}return 0;}
C. C語言用窮舉法判斷素數問題,不知道哪裡出了毛病
主要是雙引號用得不對,應該用英文的雙引號,你改過來就對了。。。
#include<stdio.h>
#include<math.h>
int main(void)
{ int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
printf("%d is a prime number\n",m);
else
printf("%d is not a prime number\n",m);
return 0;
}
這個就可以了。。。
D. c語言判斷素數
根據初等數論,一個整數不能整除他的平方數之內的整數就是素數..
#include<stdio.h>
#include<math.h>
main(){
int
n,j,sum=0;
for(n=3;n<=300000;n+=2){
for(j=2;j<=sqrt(n)-1;j++){
if((n%j)==0)
break;
}
if(j>sqrt(n)-1){
printf("%d,
",n);
sum=sum+1;
}
}
printf("\
sum=%d\
",sum);
}
這個程序是找出3到300000內的所有素數...也可以根據你的范圍修改程序上面程序中300000的值!值的一提的是這個程序運行的時間5秒左右,因為利用了初等數論和篩選法......直接把偶數(大於3)去掉不做判斷..如果用窮舉法(舉個例:300000中最大的素數為299993,運行到這個數時是將299993從2開始除一直到299992才判斷結束!這就說就是這一個數就做了判斷299992次判斷.而300000內的素數有26121個..)程序運行時間要2分多鍾!!!!我在本機上測試過..可見程序的演算法是多麼重要..
E. 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;
}
(5)c語言判斷素數窮舉法擴展閱讀:
1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)
2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法
F. 用C語言如何判斷素數
素數又稱質數,所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。
思路1、判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。
思路2、判斷方法還可以簡化。
m 不必被2~m-1之間的每一個整數去除,只需被2~√m之間的每一個整數去除就可以了。如果 m 不能被2~√m間任一整數整除,m必定是素數。例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。
原因:因為如果m能被2~m-1之間任一整數整除,其二個因子必定有一個小於或等於√m,另一個大於或等於√m。
例如16能被2、4、8整除,16=2*8,2小於 4,8大於4,16=4*4,4=√16,因此只需判定在2~4之間有無因子即可。
兩種思路的代碼請看解析。
拓展資料:
素數(prime number)又稱質數,有無限個。素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
網路——C語言
G. 如何用c語言編程判斷一個數是不是素數
方法一:
#include<stdio.h>
int main(){
int i,j;
printf("請輸入一個正整數。\n");
scanf("%d",&i);
if(i<2)
printf("小於2,請重新輸入。\n");
elseif(i%2==0)
printf("%d不是一個素數。\n",i);
else{
for(j=2;j<=i/2;j++){
if(i%j==0){
printf("%d不是一個素數。\n",i);
break;
}
if(j>i/2){
printf("%d是一個素數。\n",i);
break;
}
}
}
}
方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("YES\n");
}else{
printf("NO\n");
}
}
方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{
printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素數\n",a);
else
printf("%d不是素數\n",a);
}while(a!=0);
}
H. 用C語言如何判斷素數
所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2~16的任一整數整除.因此判斷一個整數m是否是素數,只需把m被2~m-1之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數
另外判斷方法還可以簡化.m不必唄2~m-1之間的每一個整數去除,只需被2~√m之間的每一個整數去除就可以了.如果m不能被2~√m間任一整數整除,m必定是素數.例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數.(原因:因為如果m能被2~m-1之間任一整數整除,其二個因子必定有一個小於或等於√m,另一個大於或等於√m.例如16能被2,4,8整除,16=2*8,2小於4,8大於4,16=4*4,4=√16,因此只需判定在2~4之間有無因子即可)
#include
#include
void main()
{
int m,i,k;
printf("請輸入一個整數:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;ik)
printf("%d 是素數.\n",m);
else
printf("%d 不是素數.\n",m);
}
I. C語言如何使用自定義函數判斷素數
#include <stdio.h>
int fun(int x)//
{
if(x<2)
return 0;//返回0,非素數
for(int i=2;i*i<=x;i++)
if(x%i==0)
return 0;
return 1;//返回1,素數
}
int main()
{
int n;
scanf("%d",&n);
if(fun(n)==1)
printf("%d是素數 ",n);
else
printf("%d不是素數 ",n);
return 0;
}