编写一个C语言程序判断一个数是否是素数 编写一个判断数n是否是素数的函数(c语言)

\u5982\u4f55\u7528c\u8bed\u8a00\u7f16\u7a0b\u5224\u65ad\u4e00\u4e2a\u6570\u662f\u4e0d\u662f\u7d20\u6570\uff1f

\u65b9\u6cd5\u4e00\uff1a
\uff03include\uff1cstdio\uff0eh\uff1e
int main\uff08\uff09\uff5b
int i\uff0cj\uff1b
printf\uff08\uff02\u8bf7\u8f93\u5165\u4e00\u4e2a\u6b63\u6574\u6570\u3002\uff3cn\uff02\uff09\uff1b
scanf\uff08\uff02\uff05d\uff02\uff0c\uff06i\uff09\uff1b
if\uff08i\uff1c2\uff09
printf\uff08\uff02\u5c0f\u4e8e2\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165\u3002\uff3cn\uff02\uff09\uff1b
elseif\uff08i\uff052\uff1d\uff1d0\uff09
printf\uff08\uff02\uff05d\u4e0d\u662f\u4e00\u4e2a\u7d20\u6570\u3002\uff3cn\uff02\uff0ci\uff09\uff1b
else\uff5b
for\uff08j\uff1d2\uff1bj\uff1c\uff1di\uff0f2\uff1bj\uff0b\uff0b\uff09\uff5b
if\uff08i\uff05j\uff1d\uff1d0\uff09\uff5b
printf\uff08\uff02\uff05d\u4e0d\u662f\u4e00\u4e2a\u7d20\u6570\u3002\uff3cn\uff02\uff0ci\uff09\uff1b
break\uff1b
\uff5d
if\uff08j\uff1ei\uff0f2\uff09\uff5b
printf\uff08\uff02\uff05d\u662f\u4e00\u4e2a\u7d20\u6570\u3002\uff3cn\uff02\uff0ci\uff09\uff1b
break\uff1b
\uff5d
\uff5d
\uff5d
\uff5d
\u65b9\u6cd5\u4e8c\uff1a
\uff03include\uff1cstdio\uff0eh\uff1e
int main\uff08\uff09\uff5b
int a\uff1d0\uff1b
int num\uff1d0\uff1b
scanf\uff08\uff02\uff05d\uff02\uff0c\uff06num\uff09\uff1b
for\uff08inti\uff1d2\uff1bi\uff1cnum\uff0d1\uff1bi\uff0b\uff0b\uff09\uff5b
if\uff08num\uff05i\uff1d\uff1d0\uff09\uff5b
a\uff0b\uff0b\uff1b
\uff5d
\uff5d
if\uff08a\uff1d\uff1d0\uff09\uff5b
printf\uff08\uff02YES\uff3cn\uff02\uff09\uff1b
\uff5delse\uff5b
printf\uff08\uff02NO\uff3cn\uff02\uff09\uff1b
\uff5d
\uff5d

\u65b9\u6cd5\u4e09\uff1a
\uff03include\uff02stdio\uff0eh\uff02
int main\uff08\uff09\uff5b
printf\uff08\uff02\uff3ct\uff3ct\uff3ct\uff3ct\uff3cthelloworld\uff3cn\uff02\uff09\uff1b
int a\uff0ci\uff1b
do\uff5b
printf\uff08\uff02inputnumberjudgeprimenumber\uff1a\uff3cn\uff02\uff09\uff1b
scanf\uff08\uff02\uff05d\uff02\uff0c\uff06a\uff09\uff1b
for\uff08i\uff1d2\uff1bi\uff1ca\uff1bi\uff0b\uff0b\uff09
if\uff08a\uff05i\uff1d\uff1d0\uff09break\uff1b
if\uff08i\uff1d\uff1da\uff09
printf\uff08\uff02\uff05d\u662f\u7d20\u6570\uff3cn\uff02\uff0ca\uff09\uff1b
else
printf\uff08\uff02\uff05d\u4e0d\u662f\u7d20\u6570\uff3cn\uff02\uff0ca\uff09\uff1b
\uff5dwhile\uff08a\uff01\uff1d0\uff09\uff1b
\uff5d

\u5224\u65ad\u4e00\u4e2a\u6570\u662f\u5426\u7d20\u6570\u7684\u51fd\u6570\u53ef\u4ee5\u8fd9\u6837\u5199\uff1a

int chk(int x)
{
ok=1;
for (i=2;i<x && ok==1;i++) if (x%i==0) ok=0;
return ok;
}

\u628a80\u64a4\u5206\u4e3a\u4e24\u4e2a\u7d20\u6570\u4e4b\u548c\u7684\u7a0b\u5e8f\u4ee3\u7801\u53ef\u4ee5\u8fd9\u6837\u5199\uff1a

main()
{
int i;
for (i=2;i<=40;i++) if (chk(i) && chk(80-i)) printf("80=%d+%d\n",i,80-i);
}

1、首先打开编辑器软件,在里面新的C语言文件里引入头文件并输入主函数,在主函数中输入代码:

2、然后写入判断素数的逻辑,这里先引入一个scanf函数,接受用户输入的数值存入变量,对接收的变量判断其是否为素数,判断的依据是如果能被2到n-1中的某个数整除就是素数,否则就不是。最后把判断的结果打印出来即可:

3、最后编译运行调试一下程序,按下crtl+F5编译,在弹出的命令行中输入17这个素数,程序判断的结果是素数说明程序的逻辑是没有问题的。以上就是C语言判断素数的方法:



目的:判断一个数是否为素数

# include <stdio.h>


int main(void)


{


int m;


int i;


scanf("%d",&m);


for(i = 2; i < m; i++)     //2到(m-1)的数去除m


{


if(m% i == 0)       // 判断能否整除


break;

}

if (i == m)


printf("YES!
");


else


printf("No!
");


}

for循环的功能:

①若能整除,通过break跳出函数;

②若一直到m-1都不能整除,此时i再自增1到m,不满足i < m跳出for循环,这时i = m。

扩展资料:


素数定理:



1、在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。



2、存在任意长度的素数等差数列。



3、一个偶数可以写成两个合数之和,其中每一个合数都最多只有9个质因数。(挪威数学家布朗,1920年)。



4、一个偶数必定可以写成一个质数加上一个合成数,其中合数的因子个数有上界。(瑞尼,1948年)。



5、一个偶数必定可以写成一个质数加上一个最多由5个因子所组成的合成数。后来,有人简称这结果为 (1 + 5)(中国潘承洞,1968年)。



6、一个充分大偶数必定可以写成一个素数加上一个最多由2个质因子所组成的合成数。简称为 (1 + 2)。

参考资料来源:百度百科-质数





  1. 思路1:

    判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。代码如下:
    #include <stdio.h>
    int main(){
    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是素数。
    ", num);
    }else{
    printf("%d不是素数。
    ", num);
    }
    return 0;
    }

  2. 思路2:

    另外判断方法还可以简化。m不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。代码如下:

    #include <stdio.h>
    #include <math.h>
    void main(){
    int m; // 输入的整数 
    int i; // 循环次数
    int k; // m 的平方根 
    printf("输入一个整数:");
    scanf("%d",&m);
    // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型 
    k=(int)sqrt( (double)m );
    for(i=2;i<=k;i++)
    if(m%i==0)
    break;
    // 如果完成所有循环,那么m为素数
    // 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k 
    if(i>k)
    printf("%d是素数。
    ",m);
    else
    printf("%d不是素数。
    ",m);
    return 0;
    }





最简单的方法:用这个数分别除以比它小的整数(到2为止),如果都除不尽,那就是素数了。有一个能整除,就退出循环,显示不是素数。判断是否除尽,就是判断除数*商是否等于被除数。

  • 濡備綍鐢c璇█鍒ゆ柇涓涓暟鏄涓嶆槸绱犳暟
    绛旓細1銆佹墦寮visual C++ 6.0锛岀偣鍑汇愭枃浠躲-銆愭柊寤恒-銆愭枃浠躲戯紝鐒跺悗閫夋嫨銆怌++ Source File銆戯紱2銆佽緭鍏ラ澶勭悊鍛戒护鍜屼富鍑芥暟锛歩nclude<stdio.h> /*鍑芥暟澶达細杈撳叆杈撳嚭澶存枃浠*/ void main() /*绌虹被鍨嬶細涓诲嚱鏁*/ 3銆佸畾涔夊彉閲忓苟杈撳叆涓涓暟瀛锛歩nt m,i; /*瀹氫箟鍙橀噺鐨勬暟鎹被鍨嬩负鏁村瀷*/ printf(...
  • 鐢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");} } }
  • c璇█鍒ゆ柇涓涓暣鏁版槸濂囨暟杩樻槸鍋舵暟涓夌鏂规硶?
    绛旓細scanf("%d",&a);if(a%2==1)printf("odd\n");else printf("even\n");return 0;}
  • 濡備綍鐢c璇█缂栧啓绋嬪簭,杈撳叆涓涓暟n涓嶄竴瀹氭槸鏁存暟,鍒ゅ畾n鏄皬浜0,绛変簬0杩樻槸...
    绛旓細浣犲彲浠ヤ娇鐢ㄦ潯浠惰鍙ワ紙if-else璇彞锛夋潵鍒ゆ柇杈撳叆鐨勬暟n鏄皬浜0銆佺瓑浜0杩樻槸澶т簬0銆備笅闈㈡槸涓涓娇鐢C璇█缂栧啓鐨勭ず渚绋嬪簭锛歚``c include <stdio.h> int main() { double n;printf("璇疯緭鍏涓涓暟锛");scanf("%lf", &n);if (n < 0) { printf("杈撳叆鐨鏁版槸璐熸暟\n");} else if (n == 0)...
  • C璇█缂栫▼鍒ゆ柇杈撳叆鐨涓涓暟鏄惁鏄5鐨勫嶆暟
    绛旓細C璇█缂栫▼鍒ゆ柇杈撳叆鐨勪竴涓暟鏄惁鏄5鐨勫嶆暟锛岀紪鍐欐柟娉曞涓嬪浘锛欳璇█鐨勪富瑕佺壒鐐癸細绠娲佺揣鍑戙佺伒娲绘柟渚裤侰璇█涓鍏卞彧鏈40涓叧閿瓧锛9绉嶆帶鍒惰鍙ワ紝绋嬪簭涔﹀啓褰㈠紡鑷敱锛屽尯鍒嗗ぇ灏忓啓銆傛妸楂樼骇璇█鐨勫熀鏈粨鏋勫拰璇彞涓庝綆绾ц瑷鐨勫疄鐢ㄦх粨鍚堣捣鏉ャ侰璇█鍙互鍍忔眹缂栬瑷涓鏍峰浣嶃佸瓧鑺傚拰鍦板潃杩涜鎿嶄綔锛岃岃繖涓夎呮槸璁$畻鏈烘渶...
  • 鍒ゆ柇涓涓暟鏄惁涓虹礌鏁c璇█
    绛旓細鍒ゆ柇涓涓暟鏄惁涓虹礌鏁c璇█锛屽涓嬶細鍒嗘瀽:鍙兘琚1鍜屽畠鏈韩鏁撮櫎鐨勬暣鏁扮О涓虹礌鏁般傚湪鏁板涓紝瑕佸垽鏂璶鏄惁涓虹礌鏁,閫氬父璁﹏闄や互2V鐨勬瘡涓涓暣鏁帮紝濡傛灉锛岃兘琚2V鍑犵殑鏌愪釜鏁存暟鏁撮櫎锛屽垯璇存槑锛屼笉鏄礌鏁帮紝鍚﹀垯n涓瀹氭槸绱犳暟銆傛柟娉曚竴:鐢╢or璇璔鍒ゆ柇n鏄惁涓烘暣鏁 鍦ㄨ繖涓唬鐮佷腑锛屾垜浠鍏堝畾涔変簡涓涓悕涓簊prime鐨勫嚱鏁帮紝...
  • C璇█缂栧啓涓涓▼搴忓垽鏂竴涓暟鏄惁涓虹礌鏁?鎬ユ眰
    绛旓細1銆侀鍏堟墦寮缂栬緫鍣ㄨ蒋浠讹紝鍦ㄩ噷闈㈡柊鐨C璇█鏂囦欢閲屽紩鍏ュご鏂囦欢骞惰緭鍏ヤ富鍑芥暟锛屽湪涓诲嚱鏁颁腑杈撳叆浠g爜锛2銆佺劧鍚庡啓鍏鍒ゆ柇绱犳暟鐨勯昏緫锛岃繖閲屽厛寮曞叆涓涓scanf鍑芥暟锛屾帴鍙楃敤鎴疯緭鍏ョ殑鏁板煎瓨鍏ュ彉閲忥紝瀵规帴鏀剁殑鍙橀噺鍒ゆ柇鍏舵槸鍚︿负绱犳暟锛屽垽鏂殑渚濇嵁鏄鏋滆兘琚2鍒皀-1涓殑鏌涓暟鏁撮櫎灏辨槸绱犳暟锛屽惁鍒欏氨涓嶆槸銆傛渶鍚庢妸鍒ゆ柇鐨勭粨鏋滄墦鍗...
  • 缂栧啓鍑芥暟鍒ゆ柇涓涓暟鏄惁鏄洖鏂囨暟銆
    绛旓細杩欎釜鍑芥暟閫氳繃灏嗘暟瀛楄浆鎹负瀛楃涓诧紝骞舵瘮杈冨瓧绗︿覆涓庡叾鍙嶈浆鍚庣殑瀛楃涓叉槸鍚︾浉绛夛紝鍙互鏈夋晥鍦鍒ゆ柇涓涓暟鏄惁鏄洖鏂囨暟銆傚湪杩涜C璇█缂栧啓绋嬪簭鏃讹紝闇瑕佹敞鎰忎互涓嬪嚑鐐癸細1銆佺紪鍐欒鑼冿細瑕侀伒瀹圕璇█鐨缂栫▼瑙勮寖锛屽鍙橀噺鍛藉悕瑙勮寖銆佺缉杩涖佹敞閲婄瓑銆傜紪鍐欒鑼冪殑浠g爜鏄撲簬缁存姢鍜岀悊瑙o紝涓斿彲浠ユ彁楂樹唬鐮佽川閲忋2銆佸唴瀛樼鐞嗭細C璇█涓...
  • 鐢C璇█缂栫▼:缂栧啓涓鍑芥暟鍒ゅ埆鏌涓鏁鏄惁涓虹礌鏁,鑻ユ槸,杩斿洖鍊间负1;鍚﹀垯...
    绛旓細void main(){ int a,c;int isSus(int n);/*鍑芥暟澹版槑*/ printf("璇疯緭鍏ヤ竴鏁存暟a:\n");scanf("%d",&a);c=isSus(a);/*鍑芥暟璋冪敤*/ printf("%d",c);printf("\n");} int isSus(int n)/*鍑芥暟瀹氫箟*/ { int j,t;for(j=2;j<n;j++)if(n%j==0){ t=0;break;} else t=1...
  • C璇█:缂栧啓涓涓▼搴,鍒ゆ柇涓涓暣鏁鐨勫鍋舵с傚鏋滄槸濂囨暟,杈撳叆1,鏄伓鏁...
    绛旓細include<stdio.h>void main(){ int n = 0; scanf("%d", &n); //璁╃敤鎴疯緭鍏ユ暟瀛 printf("%d", n%2 == 0 ? 2 : 1); //鍒ゆ柇鏁板瓧鏄惁鑳借2鏁撮櫎}璇峰弬鑰冧笂闈㈢殑浠g爜銆
  • 扩展阅读:少儿编程一般学几年 ... 孩子学编程最佳年龄 ... 少儿编程的好处和坏处 ... plc编程必背50个程序 ... 初学编程必背50个 ... 最难学的10大语言 ... 为什么不建议孩子学编程 ... 免费自学编程的app ... c十十编程知识点 ...

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