本文目錄一覽:
- 1、C語言中如何求質數
- 2、C語言的判斷質數函數
- 3、C語言中的質數
C語言中如何求質數
#includestdio.h
int isprime(int n)
{ for(int i=2; i*i=n; i++)
if(n%i==0)return 0;
return n1;
}
int main()
{ int i,n;
scanf(“%d”,n);
for(i=2; in; i++)
if(isprime(i))
printf(“%5d”,i);
return 0;
}
C語言的判斷質數函數
這是我以前寫過的判斷質數的程序,希望對你有幫助。
#includestdio.h
int
prime(int
a)
{
int
i;
for(i=2;i=a/2;i++)
{
if(a%i==0)
break;
}
if(ia/2)
return
1;
else
return
0;
}
int
main(void)
{
int
x;
printf(“請輸入一個整數:”);
scanf(“%d”,x);
if(prime(x))
printf(“%d為素數\n”,x);
else
printf(“%d不是素數\n”,x);
}
主要是加了break
C語言中的質數
數學的概念中,素數就是只能被1和它本身所整除的整數。但是有一個例外,就是1不屬於素數。所以你在輸入一個整數並加以判斷的時候就需要考慮這種情況了。如下即可:
while(scanf(“%lu”, num) == 1 num != 1)
這裡用到了while循環來判斷輸入的數值並加以判斷,如果輸入格式正確的話會返回一個1並將輸入的數值存入num這個變數中,然後再判斷num的值是否為1。
在這裡有一條很好用的規則用於素數的判斷:測試的數只需要界於2到num的平方根之間的所有數,看它們是否可以整除num。如果可以整除,說明輸入的數不是素數;反之,說明輸入的數是素數。
到這裡,就會有人說平方根怎麼求,其實這個很好解決。你完全可以像下面這樣描述判斷條件:
for(div = 2; (div * div) = num;div++){ if(num % div == 0){ if((div * div) != num){
printf(“%lu is divisible by %lu and %lu.\n”, num, div, num / div);
}else {
printf(“%lu is divisible by %lu.\n”, num, div);
}
}
}
在這裡,在if條件語句裡面還嵌套了一個if條件語句,用來判斷兩個約數是否是一樣的,比如144,約數是12和12,這時候就只需要列印一個約數即可。
原創文章,作者:OPDB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145694.html