C语言中,怎么限制条件可以表示素数?

如题所述

1、写我们的头文件和主函数。

2、编写定义变量,我们语言定义一个i来用于后面的for循环

3、输入一个数,在那之前我们要有一个printf()提示一下,显得程序有调理。

4、利用for循环看一看从2到n-1是否能被n整除,如果能就要break。

5、判断素数,如果程序正常结束,就i>=n,说明他就是素数。

6、 如果通过break结束,他就会i<n,所以他就不是素数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-06-15

素数的判断并不能通过简单的限制条件进行判断, 只能自己根据素数的数学定义,自行书写素数判断函数并调用。 

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;
    scanf("%d",&n);//输入n值。
    if(isPrime(n)) //判断是素数
        printf("%d 是素数\n", n);//输出结果。

    return 0;
}

注意,用到了平方根函数sqrt,所以需要包含头文件math.h。

本回答被网友采纳
第2个回答  2013-12-20
1>素数只能被1和本身整除的数:如2,3,5,7...2>程序中表示则采用for (i=100;i<=n;i=i+2) n为范围,因为判断素数则先判断质数然后再判断是否整除问题。3>在数学在只要判断一个数的开方值即可。如:1> 把先求数做外层循环为M,注意只步长为m=m+2。2> 把上面循环数开方为k。3> 内层循环为i,当k除内循环的数有余数,则退出循环。4> 再当i大于k+1则是素数。例子:for(m=100;m<=200;m=m+2) { K=sqr(m); For(i=2;i<=k;i++) If(m%i==0)break; If(i>=k+1) Printf(…);本回答被网友采纳
第3个回答  2013-12-20
没办法限制,只能把比他小的数循环做模运算,只要除了1和他本身外任何一个数整除就不是素数。
第4个回答  2013-12-20
不能被2.3.5.7。11,整除的数。前提是这个数大于11,