用C语言如何判断素数

如题所述

按照如下步骤即可用C语言判断素数

1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。

2、然后在弹出的新建对话框中点击C++Source File。

3、在新建的文件文本框中输入预处理命令和主函数,即函数头和空类型。

4、然后再定义变量并输入一个数字,即定义变量的数据类型,输出文字提示,再输入一个数字。

5、然后用for函数和if函数判断是否是素数。

6、点击确定后即可成功创建刚刚新建的程序,随机输入一个数字即可验证一下刚刚创建的C语言。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-23

材料/工具:visual C++ 6.0

1、打开visual C++ 6.0-文件

2、点击新建-文件-C++ Source File

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

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

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

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

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

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

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

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

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

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

break;

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

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

else

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

6、完整的源代码:

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

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

{

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

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

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

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

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

break;

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

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

else

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

}

本回答被网友采纳
第2个回答  2018-01-05

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

第3个回答  推荐于2019-11-15

判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

#include〈math.h〉
main()
{ int m,k,i;
for(m=1;m<=100;m=m+2) //m=m+2,因为偶数都不是素数,不用考虑,所以每次m+2.
{ k=sqrt(m) //先求这个数的平方跟
for(i=2;i<=k;i++) //然后用i(从2到k,即m的平方跟)去除m,
if(m%i==0) break; //如果能被整除, 则不是素数,break
if(i>=k+1) pritnf("%d",m); //如果i>k+1,则说明没有数能整除m.则m是素数
}
}

本回答被网友采纳
第4个回答  推荐于2018-05-15
所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数
另外判断方法还可以简化。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之间有无因子即可)
#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>k)
printf("%d 是素数。\n",m);
else
printf("%d 不是素数。\n",m);
}本回答被提问者和网友采纳
相似回答