1樓:匿名使用者
#include "stdafx.h"
#include
void main()
}}}這樣試試呢~~~但是以前編寫過~~很久沒用過c了 幾乎忘記的差不多了~~n的值可以小於等於a的平方根就行了~~這樣運算會更快~~
2樓:夢之旅夢之藍
include
#include
void main()
3樓:春雨_潤物
#include
#include
void main()
printf("yes");}
4樓:匿名使用者
錯誤較多,修改如下:
#include
void main()
//注意這裡
}if (n==a)//注意這裡
}//注意這裡
c語言判斷乙個數是否是質數
5樓:花開勿敗的雨季
根據質數的定義,在判斷乙個數n是否是質數時,只要用1至n-1去除n,看看能否整除即可。
還有更好的辦法:先找乙個數m,使m的平方大於n,再用小於等於m的質數去除n(n為被除數),如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50*50>1993,那麼只要用1993除以<50的質數看是否能整除,若不能即為質數。
100以內的質數有25個,還是比較好記的,只要記熟100以內質數,就可以快速判斷10000以內的數是不是質數。
100以內的質數有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,在100內共有25個質數。
只有1和它本身兩個因數的自然數,叫質數(或稱素數)。(如:由2÷1=2,2÷2=1,可知2的因數只有1和它本身2這兩個約數,所以2就是質數。
與之相對立的是合數:「除了1和它本身兩個因數外,還有其它因數的數,叫合數。」如:
4÷1=4,4÷2=2,4÷4=1,很顯然,4的因數除了1和它本身4這兩個因數以外,還有因數2,所以4是合數。)
6樓:聽不清啊
#include
int main()
7樓:雍義呂子
|錯誤較多,修改如下:
#include
void
main()
{int
a,n;
scanf("%d",&a);
if(a==0||a==1)
printf("no");
else
if(a==2)
//注意這裡
8樓:符恆但霜
#include
"stdio.h"
void
main()
}//如果乙個整數是質數,那麼只有被1和它本身整除,所以只有2,如果超過2,那麼肯定不是質數
if(flag==2)
else}
9樓:考長青兆綾
判斷乙個數是否是質數在於看這個數字是否只能被1和它本身所整除的整數。但是有乙個例外,1不屬於質數。
c語言中的質數:
數學的概念中,素數就是只能被1和它本身所整除的整數。但是有乙個例外,就是1不屬於素數。所以你在輸入乙個整數並加以判斷的時候就需要考慮這種情況了。如下即可:
while(scanf("%lu",
&num)==1
&&num
!=1)
1這裡用到了while迴圈來判斷輸入的數值並加以判斷,如果輸入格式正確的話會返回乙個1並將輸入的數值存入num這個變數中,然後再判斷num的值是否為1。
在這裡有一條很好用的規則用於素數的判斷:測試的數隻需要界於2到num的平方根之間的所有數,看它們是否可以整除num。如果可以整除,說明輸入的數不是素數;反之,說明輸入的數是素數。
到這裡,就會有人說平方根怎麼求,其實這個很好解決。你完全可以像下面這樣描述判斷條件:
for(div=2;
(div
*div)
<=num;div++)else
else{//
約數相同
printf("%lu
isdivisible
by%lu.\n",
num,
div);
//將isprime設定為0,表示其不是乙個素數
isprime=0;
if(isprime
==1){
printf("%lu
是素數.\n",
num);
printf("please
enter
another
integer
foranalysis.
");printf("enterqto
quit.\n");
printf("bye.\n");
return
0;這裡有乙個關鍵就是,在for迴圈控制表示式中使用了逗號運算子,以針對每個新輸入的數將isprime初始化為1。
10樓:匿名使用者
#include
void main()
else
}上面這個演算法比較取巧
c語言中如何判斷乙個數是否是質數?
11樓:匿名使用者
判斷乙個數是否是質數在於看這個數字是否只能被1和它本身所整除的整數。但是有乙個例外,1不屬於質數。
c語言中的質數:
數學的概念中,素數就是只能被1和它本身所整除的整數。但是有乙個例外,就是1不屬於素數。所以你在輸入乙個整數並加以判斷的時候就需要考慮這種情況了。如下即可:
這裡用到了while迴圈來判斷輸入的數值並加以判斷,如果輸入格式正確的話會返回乙個1並將輸入的數值存入num這個變數中,然後再判斷num的值是否為1。
在這裡有一條很好用的規則用於素數的判斷:測試的數隻需要界於2到num的平方根之間的所有數,看它們是否可以整除num。如果可以整除,說明輸入的數不是素數;反之,說明輸入的數是素數。
到這裡,就會有人說平方根怎麼求,其實這個很好解決。你完全可以像下面這樣描述判斷條件:
for(div = 2; (div * div) <= num;div++)else else{// 約數相同
printf("%lu is divisible by %lu.\n", num, div);
// 將isprime設定為0,表示其不是乙個素數
isprime = 0;
if(isprime == 1){
printf("%lu 是素數.\n", num);
printf("please enter another integer for analysis. ");
printf("enter q to quit.\n");
printf("bye.\n");
return 0;
這裡有乙個關鍵就是,在for迴圈控制表示式中使用了逗號運算子,以針對每個新輸入的數將isprime初始化為1。
12樓:
#include
int main()
}if(b==2)
else
return 0;}
13樓:精靈只路過
#include "stdio.h"
void main()
}//如果乙個整數是質數,那麼只有被1和它本身整除,所以只有2,如果超過2,那麼肯定不是質數
if (flag==2) else}
14樓:太陽雨
樓上的太複雜了!
int main()
}if(a==0)
else
return 0;}
15樓:聽不清啊
#include
int main()
16樓:熱情的滑鐵盧
#include
#include
#include
int prime(int a) /*定義乙個函式來判斷數a是不是質數*/
if (flag==2)
return 1; /*如果a是質數,flag應該是2,返回值1*/
else
return 0; /*如果a不是質數,flag比2大,返回值0*/
}/* (這部分內容是補充,prime函式可以簡化為:)int prime(int a)
return flag;}*/
int main()
如何用c語言程式設計判斷乙個數是不是素數?
17樓:問明
方法一:
#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);}
18樓:風若遠去何人留
判斷素數的方法很多。
以數學方法為例,按照數學規則,如果在2~n-1中存在因子,則n不是素數。否則n為素數。
int is_prime(int n)//判斷n是否為素數。
在此基礎上,可以將判斷範圍優化為i <= n/2 或i <=sqrt(n)(sqrt為算數平方根函式)。
這樣可以減少判斷次數,提高效率。
19樓:匿名使用者
樓上的那複製來的?我的修改一下#includeint prime(int m)
main()
負數、0、 1都不是素數,所以輸入它們的時候顯示不是素數(素數是從2開始的)
c語言編寫乙個程式判斷乙個數是否為素數?急求
20樓:亂七八糟
目的:判斷乙個數是否為素數
# include
int main(void)
for迴圈的功能:
①若能整除,通過break跳出函式;
②若一直到m-1都不能整除,此時i再自增1到m,不滿足i < m跳出for迴圈,這時i = m。
21樓:飛喵某
2、然後寫入判斷素數的邏輯,這裡先引入乙個scanf函式,接受使用者輸入的數值存入變數,對接收的變數判斷其是否為素數,判斷的依據是如果能被2到n-1中的某個數整除就是素數,否則就不是。最後把判斷的結果列印出來即可:
3、最後編譯執行除錯一下程式,按下crtl+f5編譯,在彈出的命令列中輸入17這個素數,程式判斷的結果是素數說明程式的邏輯是沒有問題的。以上就是c語言判斷素數的方法:
c語言程式設計輸入正整數n判斷它是否同時含有
include include int main if flag1 flag2 printf 正整數 d既包含偶數也包含奇數 n n2 else if flag1 printf 正整數 d只包含奇數 n n2 else printf 正整數 d只包含偶數 n n2 system pause retu...
c 中判斷數是否為奇數一共有幾種方法
在c c 中,判斷乙個整數是否為奇數就一種方法,那就是考察這個數能不能被2整除,不能整除的就是奇數。至於用什麼樣的c c 語句實現,那卻有好多種寫法,舉幾例如下 設n是已經宣告並賦值的正整數 直接判斷能否被2整除 if n 2 0 printf d is an odd number.n n 或if ...
c語言判斷每位數字是否相同,c語言陣列元素判斷是否相同以及相同的個數
我來幫樓主修改一下吧,先說明一下,我只是基於樓主的分析和處理實現來盡可能最小程度的做改動,不代表我個人贊同這種實現或者沒有更好的方法。要重新寫一段簡單的實現很容易,但樓主的求助就成了讓人幫忙完成作業了,沒意義。只要是修改while裡面的部分 for i 0 i if s m printf yes n...
c語言程式設計 判斷300 999之間有多少個素數,並輸出所有素
1 cat 300.c include stdio.h int main printf n printf row 5d d 6 1 printf n printf totol 5d d printf n return 0 2 編譯gcc o 300 300.c3 執行 300 307 311 313...
fortran90程式設計中判斷正整數是否為完數的程式
integer a,i,k,sum read a k int a 2 0.1 sum 0 do 10 i 1,k if mod a,i eq.0 sum sum i10 continue if sum.eq.a then write yes else write no endif pauseend ...