如何用c语言编程判断一个数是不是素数? 求C语言编程,判断一个数是不是素数

C\u8bed\u8a00\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\u5224\u65ad\u4e00\u4e2a\u6570\u662f\u5426\u4e3a\u7d20\u6570\uff1f\u6025\u6c42

1\u3001\u9996\u5148\u6253\u5f00\u7f16\u8f91\u5668\u8f6f\u4ef6\uff0c\u5728\u91cc\u9762\u65b0\u7684C\u8bed\u8a00\u6587\u4ef6\u91cc\u5f15\u5165\u5934\u6587\u4ef6\u5e76\u8f93\u5165\u4e3b\u51fd\u6570\uff0c\u5728\u4e3b\u51fd\u6570\u4e2d\u8f93\u5165\u4ee3\u7801\uff1a

2\u3001\u7136\u540e\u5199\u5165\u5224\u65ad\u7d20\u6570\u7684\u903b\u8f91\uff0c\u8fd9\u91cc\u5148\u5f15\u5165\u4e00\u4e2ascanf\u51fd\u6570\uff0c\u63a5\u53d7\u7528\u6237\u8f93\u5165\u7684\u6570\u503c\u5b58\u5165\u53d8\u91cf\uff0c\u5bf9\u63a5\u6536\u7684\u53d8\u91cf\u5224\u65ad\u5176\u662f\u5426\u4e3a\u7d20\u6570\uff0c\u5224\u65ad\u7684\u4f9d\u636e\u662f\u5982\u679c\u80fd\u88ab2\u5230n-1\u4e2d\u7684\u67d0\u4e2a\u6570\u6574\u9664\u5c31\u662f\u7d20\u6570\uff0c\u5426\u5219\u5c31\u4e0d\u662f\u3002\u6700\u540e\u628a\u5224\u65ad\u7684\u7ed3\u679c\u6253\u5370\u51fa\u6765\u5373\u53ef\uff1a

3\u3001\u6700\u540e\u7f16\u8bd1\u8fd0\u884c\u8c03\u8bd5\u4e00\u4e0b\u7a0b\u5e8f\uff0c\u6309\u4e0bcrtl+F5\u7f16\u8bd1\uff0c\u5728\u5f39\u51fa\u7684\u547d\u4ee4\u884c\u4e2d\u8f93\u516517\u8fd9\u4e2a\u7d20\u6570\uff0c\u7a0b\u5e8f\u5224\u65ad\u7684\u7ed3\u679c\u662f\u7d20\u6570\u8bf4\u660e\u7a0b\u5e8f\u7684\u903b\u8f91\u662f\u6ca1\u6709\u95ee\u9898\u7684\u3002\u4ee5\u4e0a\u5c31\u662fC\u8bed\u8a00\u5224\u65ad\u7d20\u6570\u7684\u65b9\u6cd5\uff1a


\u5224\u65ad\u4e00\u4e2a\u6570\u662f\u5426\u662f\u7d20\u6570

#include "math.h"
int su(long x)
{
int i;
if(x%2==0) return 0;
else
for(i=3;i<sqrt(x);i+=2)
if(x%i==0) return 0;
return 1;
}

\u5224\u65ad\u7d20\u6570\uff0c\u82e5\u662f\u5c31\u8fd4\u56de1\uff0c\u5426\u5219\u5c31\u8fd4\u56de0\uff0c\u5148\u770b\u80fd\u4e0d\u80fd\u88ab2\u6574\u51fa\uff0c\u82e5\u6574\u9664\u80af\u5b9a\u4e0d\u662f\u7d20\u6570\uff0c\u5982\u4e0d\u6574\u9664\u5c31\u770b\u5b83\u80fd\u4e0d\u80fd\u88ab3,5,7,9\u3002\u3002\u3002\u4e00\u76f4\u5230sprt(x)\uff0c\u6574\u9664\u3002\u82e5\u6574\u9664\u5c31\u4e0d\u662f\u7d20\u6570

方法一:

#include<stdio.h>

int main(){

int i,j;

printf("请输入一个正整数。\n");

scanf("%d",&i);

if(i<2)

printf("小于2,请重新输入。\n");

elseif(i%2==0)

printf("%d不是一个素数。\n",i);

else{

for(j=2;j<=i/2;j++){

if(i%j==0){

printf("%d不是一个素数。\n",i);

break;

if(j>i/2){

printf("%d是一个素数。\n",i);

break;

方法二:

#include<stdio.h>

int main(){

int a=0;

int num=0;

scanf("%d",&num);

for(inti=2;i<num-1;i++){

if(num%i==0){

a++;

if(a==0){

printf("YES\n");

}else{

printf("NO\n");

方法三:

#include"stdio.h"

int main(){

printf("\t\t\t\t\thelloworld\n");

int a,i;

do{

printf("inputnumberjudgeprimenumber:\n");

scanf("%d",&a);

for(i=2;i<a;i++)

if(a%i==0)break;

if(i==a)

printf("%d是素数\n",a);

else

printf("%d不是素数\n",a);

}while(a!=0);



判断素数的方法很多。

以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数。否则n为素数。

参考代码如下:

int is_prime(int n)//判断n是否为素数。
{
    int i;
    for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。
        if(n%i==0)return 0;
         
    return 1;
}

在此基础上,可以将判断范围优化为i <= n/2 或i <=sqrt(n)(sqrt为算数平方根函数)。

这样可以减少判断次数,提高效率。



楼上的那复制来的?我的修改一下#include<stdio.h>
int prime(int m)
{int i;<br>for(i=2;i<=m/2;i++)<br>if(m%i==0) break;<br>if(i>m/2) return 1;<br>else return 0;}
main()
{int m;<br>scanf("%d",&m);<br>if(prime(m)&&m>=2) printf("%d是素数",m);<br>else printf("%d不是素数",m);<br>}负数、0、 1都不是素数,所以输入它们的时候显示不是素数(素数是从2开始的)

  • c璇█缂栫▼棰 :鍒ゆ柇涓涓暟鏄笉鏄畬鏁
    绛旓細include "stdio.h"main(){ int m,i,s;for(m=1;m<=1000;m++){ s=1;for(i=2;i<=m/2;i++)if(m%i==0)s+=i;if(s==m){ printf("%d=1",m);for(i=2;i<=m/2;i++)if(m%i==0)printf("+%d",i);printf("\n");} } } 杩欐槸姹1000浠ュ唴鐨勫畬鏁 浣犳牴鎹綘鐨勬敼涓涓...
  • c璇█:缂栫▼:鍒ゆ柇涓涓暟鐨勫鍋舵
    绛旓細涓銆佹暟瀛﹀畾涔夛細鍑℃槸鍙互琚2鏁撮櫎鐨勶紝绉颁负鍋舵暟锛涘惁鍒欎负濂囨暟銆備簩銆C璇█涓渶甯哥敤鐨鍒ゆ柇鏂瑰紡锛氭牴鎹畾涔夛紝鍙渶瀵2鍙栦綑鍗冲彲锛屾墍浠ュ彲浠ラ氳繃鍙栦綑杩愮畻绗%锛屽垽鏂鍋舵с傝瀵鏁存暟n鍒ゆ柇锛屽垯鍙互锛歩f(n%2==0) //鍙互鏁撮櫎涓哄伓鏁//杩欓噷鍒ゆ柇鍙互鍐欎綔 !(n%2) 绛夋晥銆傛垨 if(n%2==1) //涓嶈兘鏁撮櫎涓哄鏁般/...
  • c璇█缂栫▼濡備綍鍒ゆ柇杈撳叆鐨涓涓暟鏄惁鏄5鐨勫嶆暟
    绛旓細C璇█缂栫▼鍒ゆ柇杈撳叆鐨涓涓暟鏄惁鏄5鐨勫嶆暟锛岀紪鍐欐柟娉曞涓嬪浘锛欳璇█鐨勪富瑕佺壒鐐癸細绠娲佺揣鍑戙佺伒娲绘柟渚裤侰璇█涓鍏卞彧鏈40涓叧閿瓧锛9绉嶆帶鍒惰鍙ワ紝绋嬪簭涔﹀啓褰㈠紡鑷敱锛屽尯鍒嗗ぇ灏忓啓銆傛妸楂樼骇璇█鐨勫熀鏈粨鏋勫拰璇彞涓庝綆绾ц瑷鐨勫疄鐢ㄦх粨鍚堣捣鏉ャ侰璇█鍙互鍍忔眹缂栬瑷涓鏍峰浣嶃佸瓧鑺傚拰鍦板潃杩涜鎿嶄綔锛岃岃繖涓夎呮槸璁$畻鏈烘渶...
  • 鍦c璇█缂栫▼涓,瑕濡備綍鍒ゆ柇涓涓暟鏄惁涓烘暣鏁?
    绛旓細else printf(鈥渪涓嶆槸涓涓暣鏁\n鈥);鏂规硶2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(鈥滄槸鏁存暟\n鈥);else printf(鈥滀笉鏄暣鏁癨n鈥);鏂规硶3:float b;...if(b-(int)b==0)printf(鈥滄槸鏁存暟\n鈥);else printf(鈥滀笉鏄暣鏁癨n鈥);鏂规硶4:float b;...if(b!=(int)b)printf...
  • c璇█缂栫▼涓濡備綍鍒ゆ柇涓涓暟鏄惁涓烘暣鏁
    绛旓細C璇█鍒ゆ柇鏄惁涓鏁存暟锛岄偅涔堝彧鍙兘鏄垽鏂緭鍏ョ殑鍊硷紝鎴栬呭瓧绗︿覆涓殑鍊硷紝鏄惁涓烘暣鏁般傚洜涓轰竴鏃﹀瓨鍌ㄥ湪鍙橀噺涓紝鏍规嵁鍙橀噺绫诲瀷锛岃涔堜负鏁存暟锛岃涔堜负娴偣鏁帮紝鏄纭畾鐨勩備竴銆佸垽鏂濊矾锛1銆佹暣鏁颁腑锛屾寜鍗佽繘鍒惰绠楋紝鍚堟硶瀛楃涓0鍒9锛屽彟澶栧湪鏈鍒濅綅缃彲浠ユ湁绗﹀彿锛屽嵆+鎴栬-銆2銆佸浜庤緭鍏ョ殑鍊硷紝鍙互鍏堝瓨鍌ㄥ埌瀛楃涓蹭腑锛...
  • 鐢–璇█缂栫▼:杈撳叆涓涓暣鏁,鍒ゆ柇杩欎釜鏁版槸濂囨暟杩樻槸鍋舵暟銆
    绛旓細main(){ int x;printf("璇疯緭鍏涓涓暣鏁");scanf("%d",&x);if(x%2 == 0) printf("%d鏄伓鏁癨n",x);else printf("%d鏄鏁癨n",x);} C璇█锛氭槸涓闂ㄩ氱敤璁$畻鏈缂栫▼璇█锛屽簲鐢ㄥ箍娉涖侰璇█鐨勮璁$洰鏍囨槸鎻愪緵涓绉嶈兘浠ョ畝鏄撶殑鏂瑰紡缂栬瘧銆佸鐞嗕綆绾у瓨鍌ㄥ櫒銆佷骇鐢熷皯閲忕殑鏈哄櫒鐮佷互鍙婁笉闇瑕佷换浣曡繍琛岀幆澧...
  • 鐢–璇█缂栫▼:杈撳叆涓涓暣鏁,鍒ゆ柇杩欎釜鏁版槸濂囨暟杩樻槸鍋舵暟?
    绛旓細include <stdio.h> int main(){ int i ;scanf("%d", &i);if (i % 2 == 0){ printf(" 鏄鏁");} else { printf("鏄伓鏁");} return 114514;}
  • 浣跨敤C璇█缂栫▼:浠庨敭鐩樿緭鍏涓涓5鐨勬鏁存暟,鍒ゆ柇瀹鏄笉鏄洖鏂囨暟銆
    绛旓細itoa(*Hui,lenth,10))printf("杩欐槸%d浣嶆暟",count);if(count==5){puts("go on..");}else{puts("your input is error!");exit(0);}}int main(){int* Huiwenshu=NULL;//涔熷彲浠ョ敤int Huiwenshu[6];,鎺ㄨ崘鍓嶄竴绉峣nt Last_digit;//鏈綅鏁板瓧int First_digit;//棣栦綅鏁板瓧int Thou_...
  • 鐢╟璇█琛ㄧず鎬庢牱鍒ゆ柇涓涓暟鏄笉鏄畬鍏ㄥ钩鏂规暟
    绛旓細C++ 杩涗竴姝ユ墿鍏呭拰瀹屽杽浜 C 璇█锛屾渶鍒濆懡鍚嶄负甯︾被鐨凜锛屽悗鏉ュ湪 1983 骞存洿鍚嶄负 C++銆侰++ 鏄 C 鐨涓涓瓒呴泦锛屼簨瀹炰笂锛屼换浣曞悎娉曠殑 C 绋嬪簭閮芥槸鍚堟硶鐨 C++ 绋嬪簭銆傛敞鎰忥細浣跨敤闈欐佺被鍨嬬殑缂栫▼璇█鏄鍦ㄧ紪璇戞椂鎵ц绫诲瀷妫鏌ワ紝鑰屼笉鏄湪杩愯鏃舵墽琛岀被鍨嬫鏌ャ傚弬鑰冭祫鏂 RUNOOB.RUNOOB[寮曠敤鏃堕棿2018-1-3]...
  • 鎬庝箞鐢╟璇█鍐涓涓紪绋,浣胯緭鍏涓涓暣鏁,鍒ゆ柇瀹鏄笉鏄洖鏂囨暟
    绛旓細include <stdio.h> int main(){ int num, temp;int sum=0;printf("Please input a number:");scanf("%d", &num);temp=num;while(num){ sum = sum*10 + num%10;num /= 10;} if(temp == sum)printf("yes\n");else printf("no\n");return 0;} ...
  • 扩展阅读:少儿编程一般学几年 ... 小孩学编程的弊端 ... 学编程一年大概多少钱 ... 少儿编程适合多大孩子 ... 少儿编程哪个含金量高 ... 少儿编程的好处和坏处 ... 少儿编程的三大证书 ... 少儿学编程的弊端 ... 少儿编程有必要学吗 ...

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