用C语言如何判断素数? C语言中怎么判断素数

\u7528C\u8bed\u8a00\u5982\u4f55\u5224\u65ad\u7d20\u6570

\u4ecb\u7ecd\u4e09\u79cd\u4f7f\u7528C\u8bed\u8a00\u6765\u5224\u65ad\u7d20\u6570\u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u7528\u505a\u7d20\u6570\u8868\u6765\u5224\u65ad\u627e\u7d20\u6570\u7684\u65b9\u6cd5\u3002

\u4ecb\u7ecd\u4e09\u79cd\u4f7f\u7528C\u8bed\u8a00\u6765\u5224\u65ad\u7d20\u6570\u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u7528\u505a\u7d20\u6570\u8868\u6765\u5224\u65ad\u627e\u7d20\u6570\u7684\u65b9\u6cd5\u3002

素数又称质数,所谓素数是指除了 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语言



首先要知道素数是不等于1,它的因子只有1和它本身。判断一个数是否为素数,可以用大于1小于给定数的所有数去除给定数,如果有任何一个能够除尽,就表示是合数,反之是素数。下面是具体如何用C语言判断素数的过程:

1、打开visual C++ 6.0,点击【文件】-【新建】-【文件】,然后选择【C++ Source File】;

2、输入预处理命令和主函数:

#include<stdio.h>       /*函数头:输入输出头文件*/

void main()             /*空类型:主函数*/

3、定义变量并输入一个数字:

int m,i;                    /*定义变量的数据类型为整型*/

printf("输入一个数:");     /*输出文字提示*/

scanf("%d",&m);             /*输入一个数字*/

4、用for函数和if函数判断是否是素数:

for(i=2;i<=m;i++)           /*用for函数重复下面步骤*/

if(m%i==0)              /*判断输入的数是否能被除1和本身以外的数整除*/

break;

if(i>m)                 /*判断i是否大于m*/

printf("%d 是素数
",m);       /*输出是素数*/

else

printf("%d 不是素数
",m);     /*输出不是素数*/

5、最后我们输入一个数来验证这条程序是否正确。



介绍三种使用C语言来判断素数的方法,以及用做素数表来判断找素数的方法。



  1. 方法一:判断n是否能被2~n-1间的整数除

  2. 方法二:判断n是否能被2~√n间的整数除



#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,k,i;
bool prime;
cin >> n;
{
prime = true;
k = int(sqrt(n));
for (i = 2; i <= k;i++)
if (n%i == 0)
{
prime = false;
break;
}
if (prime)
{
cout << "prime" << endl;
}
else
{
cout << "not prime" << endl;
}
}
cout << endl;
return 0;
}

  • c璇█鍒ゆ柇涓涓暟涓绱犳暟
    绛旓細绱犳暟鍙堢О璐ㄦ暟銆傛墍璋撶礌鏁版槸鎸囬櫎浜 1 鍜屽畠鏈韩浠ュ锛屼笉鑳借浠讳綍鏁存暟鏁撮櫎鐨勬暟锛屼緥濡29灏辨槸绱犳暟锛屽洜涓哄畠涓嶈兘琚 2~28 鐨勪换涓鏁存暟鏁撮櫎銆傛柟娉曚竴锛鍒ゆ柇涓涓暣鏁癿鏄惁鏄礌鏁帮紝鍙渶鎶 m 琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝濡傛灉閮戒笉鑳借鏁撮櫎锛岄偅涔 m 灏辨槸涓涓礌鏁般傛柟娉曚簩锛氬彟澶栧垽鏂柟娉曡繕鍙互绠鍖栥俶...
  • C璇█涓庝箞鍒ゆ柇绱犳暟
    绛旓細棣栧厛鍒嗘瀽闇姹傦紝绱犳暟鏄寚 闄や簡1鍜屽畠鏈韩浠ュ锛屼笉鑳借浠讳綍鏁版暣闄ょ殑鏁般備緥濡傦細1锛3锛5锛7锛11锛13.銆傘傘備緥濡傝緭鍏ヤ竴涓暟m锛鍒ゆ柇m鏄惁鏄礌鏁般傛垜浠彲浠ョ敤 m鍚戝皬浜巑澶т簬1鐨勬墍鏈夋暣鏁版眰浣欍傚鏋滄湁涓涓兼槸绛変簬0锛岄偅涔堬紝灏辫兘璇佹槑杩欎釜鏁版槸绱犳暟銆俶 %锛2...锛坢-1锛夛級 == 0銆傚綋鐒讹紝鏇村ソ鐨勭畻娉曟槸 m...
  • c璇█濡備綍鍒ゆ柇涓涓暣鏁版槸绱犳暟銆
    绛旓細C璇█绋嬪簭濡備笅锛歩nclude<stdio.h> int main(){ int i,j,k=0;for(i=2;i<10000;i++){ for(j=2;j*j<=i;j++)if(i%j==0)break;if(j*j>i){ printf("%d ",i);k++;if(k%5==0)printf("\n");} } }
  • 濡備綍鐢╟璇█缂栫▼鍒ゆ柇涓涓暟鏄笉鏄绱犳暟?
    绛旓細鏂规硶涓锛氾純include锛渟tdio锛巋锛 intmain锛堬級锝 inti锛宩锛沺rintf锛堬紓璇疯緭鍏ヤ竴涓鏁存暟銆傦技n锛傦級锛泂canf锛堬紓锛卍锛傦紝锛唅锛夛紱if锛坕锛2锛塸rintf锛堬紓灏忎簬2锛岃閲嶆柊杈撳叆銆傦技n锛傦級锛沞lseif锛坕锛2锛濓紳0锛塸rintf锛堬紓锛卍涓嶆槸涓涓绱犳暟銆傦技n锛傦紝i锛夛紱else锝 for锛坖锛2锛沯锛滐紳i锛2锛沯锛嬶紜锛夛經 if...
  • C璇█鍒ゆ柇绱犳暟
    绛旓細1锛岄鍏堜簡瑙绱犳暟鐨勫畾涔夛紝涓涓ぇ浜1鐨勮嚜鐒舵暟锛岄櫎浜1鍜屽畠鏈韩澶栵紝涓嶈兘琚叾浠栬嚜鐒舵暟鏁撮櫎銆2锛屼互涓嬫槸C璇█绋嬪簭銆俰nclude "stdio.h"int main(){int n,flag=1,i;scanf("%d",&n);//杈撳叆涓涓暟n锛鍒ゆ柇瀹冩槸鍚︽槸绱犳暟銆 for(i=2;i<n;i++) {if(n%i==0)// 鏍规嵁绱犳暟鐨勫畾涔塶渚濇闄や互灏忎簬瀹冩湰韬...
  • 鎬庝箞鐢╟璇█鍒ゆ柇涓涓暟鏄笉鏄绱犳暟
    绛旓細鏂规硶涓锛氾純include锛渟tdio锛巋锛 int main锛堬級锝 int i锛宩锛沺rintf锛堬紓璇疯緭鍏ヤ竴涓鏁存暟銆傦技n锛傦級锛泂canf锛堬紓锛卍锛傦紝锛唅锛夛紱if锛坕锛2锛塸rintf锛堬紓灏忎簬2锛岃閲嶆柊杈撳叆銆傦技n锛傦級锛沞lseif锛坕锛2锛濓紳0锛塸rintf锛堬紓锛卍涓嶆槸涓涓绱犳暟銆傦技n锛傦紝i锛夛紱else锝 for锛坖锛2锛沯锛滐紳i锛2锛沯锛嬶紜锛夛經 ...
  • 濡備綍鐢╟璇█鍒ゆ柇涓涓暟鏄笉鏄绱犳暟?
    绛旓細int a=0; // 绱犳暟鐨勪釜鏁 int num=0; // 杈撳叆鐨勬暣鏁 printf("杈撳叆涓涓暣鏁帮細");scanf("%d",&num);for(int i=2;i<num;i++){if(num%i==0){a++; // 绱犳暟涓暟鍔1}} if(a==0){printf("%d鏄礌鏁般俓n", num);}else{printf("%d涓嶆槸绱犳暟銆俓n", num);}return 0;} 鍒ゆ柇...
  • c璇█鍒ゆ柇涓涓暟涓绱犳暟
    绛旓細鍒ゆ柇涓涓暣鏁癿鏄惁鏄绱犳暟锛屽彧闇鎶妋琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝濡傛灉閮戒笉鑳借鏁撮櫎锛岄偅涔坢灏辨槸涓涓礌鏁般C璇█鏄竴绉嶈绠楁満绋嬪簭璁捐璇█锛屽畠鏃㈠叿鏈夐珮绾ц瑷鐨勭壒鐐癸紝鍙堝叿鏈夋眹缂栬瑷鐨勭壒鐐广傚畠鍙互浣滀负宸ヤ綔绯荤粺璁捐璇█锛缂栧啓绯荤粺搴旂敤绋嬪簭锛屼篃鍙互浣滀负搴旂敤绋嬪簭璁捐璇█锛岀紪鍐欎笉渚濊禆璁$畻鏈虹‖浠剁殑搴旂敤...
  • 濡備綍缂栧啓涓涓C璇█绋嬪簭鍒ゆ柇涓涓暟鏄惁鏄绱犳暟?
    绛旓細\n", num);}else{printf("%d涓嶆槸绱犳暟銆俓n", num);}return 0;} 鎬濊矾2锛氬彟澶鍒ゆ柇鏂规硶杩樺彲浠ョ畝鍖栥俶涓嶅繀琚 2 ~ m-1 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄わ紝鍙渶琚 2 ~ 涔嬮棿鐨勬瘡涓涓暣鏁板幓闄ゅ氨鍙互浜嗐傚鏋渕涓嶈兘琚 2 ~ 闂翠换涓鏁存暟鏁撮櫎锛宮蹇呭畾鏄礌鏁般備緥濡鍒ゅ埆17鏄槸鍚︿负绱犳暟锛屽彧闇浣17琚2~4涔嬮棿鐨勬瘡...
  • 扩展阅读:判断素数的c语言代码 ... python判断1 100素数 ... c语言求1-100素数 ... c#求素数 ... 如何判断素数c语言while ... c++判断素数 ... 素数判断5种方法 ... 判断素数的方法c++语言 ... c++编程求判断素数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网