查看單個文章
  #1  
舊 2014-03-12, 06:29 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,019
預設 C語言判定是否為質數的程式

書上的範例如下:

代碼:
#include <stdio.h>

int main(void)
{
	int num,x,is_prime;
	
	printf("enter a number to test: \n");
	scanf("%d",&num);
	is_prime=1;
	for(x=2;x<=num/2;x++) 
	  if((num%x)==0) is_prime=0;
	if(is_prime==1) printf("%d is prime.",num);
	else printf("%d is not prime.",num);
	return 0;
}
大致能了解它的邏輯推衍,但對於紅字那部份,我改成x<num/2,不要<=,算出來的結果是一樣的,但我覺得去掉=更合理,因為如果有=的情況,則num一定是複數,除以2才會得到某個整數和x是等於的,複數就不會是質數,多此一舉。不知我的邏輯對不對?還是有啥隱藏漏洞?

thanks!
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章