❶ 用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語言
❷ 怎麼用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);
}
❸ 用c語言如何實現判斷迴文
下面介紹了幾種判斷迴文的方法:
你提問的第一個地方,比如你輸入了個5個字元的字元串 ,abcba 先判斷第一個和最後一個是否相同 ,再判斷第二個和倒數第二個 。
如果相等程序正常執行 ,如果不相等 ,break就跳出循環 ,你提問的第二個地方就是i 如果等於 len/2說明 上邊循環式正常退出 。
那就是說前後一一對比都相同 ,是迴文數 ,不等於len/2說明是由break退出導致,既前邊和後邊某一位不相同
若輸入 abbci=0str[0]='a' str[4-1-0]='c' 執行break;跳出for循環循環結束 i=0 所以判斷不是迴文若輸入ab=0str[0]='a' str[4-1-0]='a' i=1str[1]='b' str[4-1-1]='b'i=2for循環條件不滿足i
❹ C語言中判斷兩個字元串是否相同的方法
C語言提供了幾個標准庫函數,可以比較兩個字元串是否相同。以下是用strcmp()函數比較字元串的一個例子:
#include <stdio. h>
#include <string. h>
void main (void);
void main(void)
{
char* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}
上例的列印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
strcmp()函數有兩個參數,即要比較的兩個字元串。strcmp()函數對兩個字元串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一:
----------------------------------------------------
返 回 值 意 義
----------------------------------------------------
<0 第一個字元串小於第二個字元串
0 兩個字元串相等 ·
>0 第一個字元串大於第二個字元串
----------------------------------------------------
在上例中,當比較str_1(即「abc」)和str_2(即「abc」)時,strcmp()函數的返回值為0。然而,當比較str_1(即"abc")和str_3(即"ABC")時,strcmp()函數返回一個大於0的值,因為按ASCII順序字元串「ABC」小於「abc」。
strcmp()函數有許多變體,它們的基本功能是相同的,都是比較兩個字元串,但其它地方稍有差別。下表列出了C語言提供的與strcmp()函數類似的一些函數:
-----------------------------------------------------------------
函 數 名 作 用
-----------------------------------------------------------------
strcmp() 對兩個字元串進行大小寫敏感的比較
strcmpi() 對兩個字元串進行大小寫不敏感的比較
stricmp() 同strcmpi()
strncmp() 對兩個字元串的一部分進行大小寫敏感的比較
strnicmp() 對兩個字元串的一部分進行大小寫不敏感的比較
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函數代替strcmp()函數,則程序將認為字元串「ABC」等於「abc」。
❺ c語言如何判斷一個數含62
判斷方法如下:
1)將所所有數字拆分為單個字元
2)使用if判斷語句,查看是否有減6之後值為0的數,如果有,則繼續後面的代碼,
3)使用if判斷語句,查看是否有減2之後值為0的數,如果也有,則輸出。
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,中括弧內的索引值是從0算起的。
❻ 如何用c語言判斷一個數是數組中
對於字元數組str[N],判斷方法有以下三種:
第一種:用庫函數strlen
1
len = strlen(str); // 數組長度
第二種:利用計數器
1
2
int i=0;
while(str[i++] != '\0'); // 數組str的長度為i
第三種:利用sizeof函數
1
len = sizeof(str)/sizeof(str[0]); // 數組長度
對於其他類型的數組,都可以用字元數組的第三種方法,第三種方法是通用的。
❼ C語言中如何判斷數據類型
一般來說,我們不會直接使用ASCII碼來處理,因為這樣不夠直觀。比如你說的判定輸入是否是字母,是否是數字,那麼有個比較直觀的方法來處理。如果你看過ASCII碼表,那麼你就知道字數和字母在ASCII碼表中都是連續的,所以這個就比較好解決了。
判定字元ch是否是數字:
if(ch>='0'
&&
ch<='9')
判定字元ch是否是字母:
if(ch>='a'
&&
ch<='z'
||
ch>='A'
&&
ch<='Z')
當然,有已經定義好的庫函數用來判定是否數字和字母,不要加載入頭文件
判定字元ch是否是數字:
if(isalnum(ch));
判定字元ch是否是字母:
if(isalpha(ch));
這兩個函數都是判定成立,結果是true也就是1,判定不成立,結果是false,也就是0.
❽ c語言判斷一個整數是奇數還是偶數三種方法
方法1
int a;
a%2==0?「偶數」:「奇數」
方法2:
if(a%2==0){
}
if(a%2==1){
}
方法3:
if(a%2==0){
}else{
}