素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
首先要知道素数是不等于1,它的因子只有1和它本身。判断一个数是否为素数,可以用大于1小于给定数的所有数去除给定数,如果有任何一个能够除尽,就表示是合数,反之是素数。
扩展资料:
首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。
命题 1 对于B=36N+1 形数而言。
若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,
则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。
若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,
则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。
两式都无解,是素数。
参考资料来源:百度百科-质数
素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如29就是素数,因为它不能被 2~28 的任一整数整除。
方法一:判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
方法二:另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果 m 不能被 2 ~ 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。
1、首先需要打开visual C++ 6.0,接着在里面找到文件-新建-文件-C++ Source File选项,建设新文件。
2、接着需要在新建的页面中输入预处理命令和主函数:
#include<stdio.h> /*函数头:输入输出头文件*/
void main() /*空类型:主函数*/
3、为使函数正常运行,需要再定义变量并输入一个数字,相关程序如下:
int m,i /*定义变量的数据类型为整型*/
printf("输入一个数:") /*输出文字提示*/
scanf("%d",&m) /*输入一个数字*/
4、随后需要使用for函数和if函数判断是否是素数,具体程序如下:
for(i=2i<=mi++) /*用for函数重复下面步骤*/
if(m%i==0) /*判断输入的数是否能被除1和本身以外的数整除*/
break
if(i>m) /*判断i是否大于m*/
printf("%d 是素数\n",m) /*输出是素数*/
else
printf("%d 不是素数\n",m) /*输出不是素数*/
5、输入完整的源代码,运行以后,就会在运行界面中显示判断结果。
#include<stdio.h> /*函数头:输入输出头文件*/
void main() /*空类型:主函数*/
{
int m,i /*定义变量的数据类型为整型*/
printf("输入一个数:") /*输出文字提示*/
scanf("%d",&m) /*输入一个数字*/
for(i=2i<=mi++) /*用for函数重复下面步骤*/
if(m%i==0) /*判断输入的数是否能被除1和本身以外的数整除*/
break
if(i>m) /*判断i是否大于m*/
printf("%d 是素数\n",m) /*输出是素数*/
else
printf("%d 不是素数\n",m) /*输出不是素数*/
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)