c語言的質數判斷1:
首先要判斷一個數是不是質數,要看它除了1和它本身以外,在區間[2,m-1]的范圍內,是否還有一個以上(包括一個)能讓它整除的數。
思路:
在區間[2,m-1]的表示方法:
~~~c
if(x>=2&&x<=m-1)或者for(x=2;x<m;x++)
~~~
在這里我使用第二個代碼表示,除此之外還要考慮兩個特殊的數:1和2。
我們需要的效果是能否整除那就需要用到%符號(同時注意%兩邊都必須是int)
我們要做的就是在這個區間內找到這樣一個數即:
for(x=2;x<m;x++)
{
m%x==0;
break;
}
當這個數出現時就已經可以停止此次循環了。
接下來我們再來進行判斷這個數是否在這個區間內,如果在就說明輸入的數字除了1和自己本身外,還有一個能在區間[2,m-1]讓它整除的數所以該數不是質數,反之則說明該數是質數。
注:還可以在這些基礎上加上一些提示語和一些輸入錯誤的處理方法
結合以上思路最終得到的代碼為:
#include <stdio.h>
int main()
{
int x,y;
printf("請輸入一個正整數:");
scanf("%d",&x);
while(x<0)
{
x=-x;
}
if(x==1)
{
printf("該數不是質數。");
}
if(x==2)
{
printf("該數是質數。");
}
if(x>2)
{
for(y=2;y<x;y++)
{
if(x%y==0)
{
break;
}
}
if(y>=2&&y<x)
{
printf("該數不是質數。");
}
else
{
printf("該數是質數。");
}
}
return 0;
}