c语言怎么判断一个数是不是素数?
遍历2到100之间所有整数,然后逐一判断是否为素数,如果是则存入数组。
最终遍历数组输出每个值即可。 具体如下:
1、素数的判断。
根据素数定义,除了1和本身不存在其它约数的正整数为素数。
所以在C语言中判断n是否为素数可以从2开始到到n-1逐一尝试,如果可以整除说明不是素数。
更进一步,可以从2判断到n/2或者n的算术平方根,如果不存在约数,那么即为素数。
除此以外,判断素数的算法还有素数筛等。
2、判断素数的函数:
以遍历判断约数的方法为例,函数可以编写如下:
int isPrime(int n)//判断n是否为素数,如果是则返回1,否则返回0.
{
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//从2到算术平方根遍历。
if(n%i == 0) return 0;//存在约数,不是素数,返回0.
return 1;//不存在约数,返回1,表示为素数。
}
3、整体代码示例:
#include <stdio.h>
#include <math.h>
int isPrime(int n)//之前的函数。
{
int i;
for(i = 2; i <= (int)sqrt(n); i ++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int n;
int a[100];
int cnt=0;
for(n = 2;n<=100; n ++)//遍历2到100所有整数。
if(isPrime(n)) //判断是素数
a[cnt++] = n;//存入数组。
for(n = 0; n < cnt; n ++)//遍历存放素数的数组。
printf("%d ", a[n]);//输出。
printf("
");
return 0;
}
运行结果如下:
绛旓細鍒ゆ柇涓涓暟鏄惁涓虹礌鏁癱璇█锛濡備笅锛氬垎鏋:鍙兘琚1鍜屽畠鏈韩鏁撮櫎鐨勬暣鏁扮О涓虹礌鏁銆傚湪鏁板涓紝瑕佸垽鏂璶鏄惁涓虹礌鏁,閫氬父璁﹏闄や互2V鐨勬瘡涓涓暣鏁帮紝濡傛灉锛岃兘琚2V鍑犵殑鏌愪釜鏁存暟鏁撮櫎锛屽垯璇存槑锛屼笉鏄礌鏁帮紝鍚﹀垯n涓瀹氭槸绱犳暟銆傛柟娉曚竴:鐢╢or璇璔鍒ゆ柇n鏄惁涓烘暣鏁 鍦ㄨ繖涓唬鐮佷腑锛屾垜浠鍏堝畾涔変簡涓涓悕涓簊prime鐨勫嚱鏁帮紝...
绛旓細printf("%d 涓嶆槸绱犳暟\n",m); /*杈撳嚭涓嶆槸绱犳暟*/ 5銆佹渶鍚庢垜浠緭鍏涓涓暟鏉ラ獙璇佽繖鏉$▼搴忔槸鍚︽纭
绛旓細1銆佹墦寮ubuntu骞跺紑鍚竴涓粓绔紝杈撳叆鍛戒护vim is_prime.c锛屾墦寮缂栬緫椤甸潰锛岃緭鍏ラ澶勭悊鎸囦护#includestdio.h鐢ㄤ簬鍦ㄤ富鍑芥暟涓皟鐢ㄥ垽鏂嚱鏁般傜劧鍚庡畾涔変竴涓嚱鏁癷nt is_prime(int n)锛屽嵆鍒ゆ柇鏁存暟n鏄惁涓虹礌鏁般2銆侀鍏堬紝鍒ゆ柇杩欎釜鏁版槸鍚﹀皬浜2.鑻ユ槸锛屽垯鐩存帴杩斿洖0锛屽嵆琛ㄧず瀹冧笉鏄竴涓礌鏁銆3銆佺劧鍚庡畾涔変腑闂寸殑鍥犳暟i锛...
绛旓細鎸夌収濡備笅姝ラ鍗冲彲鐢–璇█鍒ゆ柇绱犳暟锛1銆侀鍏堟墦寮visual C++ 6.0锛岀劧鍚庣偣鍑诲乏涓婅鐨勬枃浠讹紝鍐嶇偣鍑绘柊寤恒2銆佺劧鍚庡湪寮瑰嚭鐨勬柊寤哄璇濇涓偣鍑籆++Source File銆3銆佸湪鏂板缓鐨勬枃浠舵枃鏈涓緭鍏ラ澶勭悊鍛戒护鍜屼富鍑芥暟锛屽嵆鍑芥暟澶村拰绌虹被鍨嬨4銆佺劧鍚庡啀瀹氫箟鍙橀噺骞惰緭鍏ヤ竴涓暟瀛楋紝鍗冲畾涔夊彉閲忕殑鏁版嵁绫诲瀷锛岃緭鍑烘枃瀛楁彁绀猴紝鍐嶈緭鍏...
绛旓細printf锛堬紓锛卍涓嶆槸涓涓礌鏁般傦技n锛傦紝i锛夛紱else锝 for锛坖锛2锛沯锛滐紳i锛2锛沯锛嬶紜锛夛經 if锛坕锛卝锛濓紳0锛夛經 printf锛堬紓锛卍涓嶆槸涓涓礌鏁銆傦技n锛傦紝i锛夛紱break锛涳綕 if锛坖锛瀒锛2锛夛經 printf锛堬紓锛卍鏄竴涓礌鏁般傦技n锛傦紝i锛夛紱break锛涳綕 锝 锝 锝 鏂规硶浜岋細锛僫nclude锛渟tdio锛巋锛 int main...
绛旓細浠庨敭鐩樹笂杈撳叆浠绘剰涓涓鏁存暟锛岀劧鍚鍒ゆ柇璇鏁版槸鍚涓虹礌鏁般 濡傛灉鏄礌鏁鍒欒緭鍑衡漈his is a prime.鈥 鍚﹀垯杈撳嚭鈥淭his is not a prime.鈥濇柟娉曚竴锛氬垽鏂璶鏄惁鑳借2~n-1闂寸殑鏁存暟闄 鏂规硶浜岋細鍒ゆ柇n鏄惁鑳借2~鈭歯闂寸殑鏁存暟闄 C璇█涓斺斾笁绉嶆柟娉曞垽鏂槸鍋舵暟杩樻槸濂囨暟 寮澶翠唬鐮侊細include <stdio.h> int main(...
绛旓細鍒ゆ柇涓涓鏁存暟m鏄惁鏄礌鏁锛屽彧闇鎶妋琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝濡傛灉閮戒笉鑳借鏁撮櫎锛岄偅涔坢灏辨槸涓涓礌鏁般C璇█鏄竴绉嶈绠楁満绋嬪簭璁捐璇█锛屽畠鏃㈠叿鏈夐珮绾ц瑷鐨勭壒鐐癸紝鍙堝叿鏈夋眹缂栬瑷鐨勭壒鐐广傚畠鍙互浣滀负宸ヤ綔绯荤粺璁捐璇█锛岀紪鍐欑郴缁熷簲鐢ㄧ▼搴忥紝涔熷彲浠ヤ綔涓哄簲鐢ㄧ▼搴忚璁¤瑷锛岀紪鍐欎笉渚濊禆璁$畻鏈虹‖浠剁殑搴旂敤...
绛旓細1銆侀鍏堟墦寮缂栬緫鍣ㄨ蒋浠讹紝鍦ㄩ噷闈㈡柊鐨C璇█鏂囦欢閲屽紩鍏ュご鏂囦欢骞惰緭鍏ヤ富鍑芥暟锛屽湪涓诲嚱鏁颁腑杈撳叆浠g爜锛2銆佺劧鍚庡啓鍏鍒ゆ柇绱犳暟鐨勯昏緫锛岃繖閲屽厛寮曞叆涓涓scanf鍑芥暟锛屾帴鍙楃敤鎴疯緭鍏ョ殑鏁板煎瓨鍏ュ彉閲忥紝瀵规帴鏀剁殑鍙橀噺鍒ゆ柇鍏舵槸鍚︿负绱犳暟锛屽垽鏂殑渚濇嵁鏄鏋滆兘琚2鍒皀-1涓殑鏌涓暟鏁撮櫎灏鏄礌鏁锛屽惁鍒欏氨涓嶆槸銆傛渶鍚庢妸鍒ゆ柇鐨勭粨鏋滄墦鍗...
绛旓細1銆侀鍏堟墦寮visual C++杞欢锛屾寜涓嬪揩鎹烽敭Crtl+N鏂板缓浠诲姟锛屽脊鍑虹獥鍙g敤榧犳爣宸﹂敭鐐瑰嚮鏂囦欢锛岄夋嫨C++ source file锛2銆佹帴涓嬫潵灏辩紪鍐欎富绋嬪簭锛绱犳暟鏄彧鑳借1鍜岃嚜宸辨暣闄ょ殑鏁帮紝鍥犳鍒ゆ柇涓涓鏁存暟m鏄惁涓虹礌鏁帮紝鍙渶琚 2 ~ 鏍瑰彿m涔嬮棿鐨勬瘡涓涓暣鏁板幓闄ゅ氨鍙互浜嗐傚鏋 m 涓嶈兘琚 2 ~ 鏍瑰彿m 闂翠换涓鏁存暟鏁撮櫎锛宮 ...
绛旓細鍒ゆ柇涓涓姝f暣鏁皀鏄笉鏄礌鏁鐨勬濊矾锛氭濊矾1)锛氬洜姝ゅ垽鏂竴涓暣鏁癿鏄惁鏄礌鏁锛屽彧闇鎶 m 琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝濡傛灉閮戒笉鑳借鏁撮櫎锛岄偅涔 m 灏辨槸涓涓礌鏁般傛濊矾2)锛氬彟澶栧垽鏂柟娉曡繕鍙互绠鍖栥俶 涓嶅繀琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝鍙渶琚 2 ~ 鈭歮 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄ゅ氨...