素数c语言(c语言中判断素数的方法?)
素数在c语言中如何表示?
# include ltstdio . HGT void main(){ int n,i scanf(
c语言怎么表示素数?
1.先打开Visual C 6.0,然后点击左上角的文件,再点击新建。
2.然后在新建对话框中单击C源文件。
3.在新建文件文本框中输入预处理命令和主要函数,即函数头和空类型。
4.然后定义变量,输入数字,即定义变量的数据类型,输出文本提示,然后输入数字。
5.然后用for和if函数看看是不是质数。
6.点击确定,成功创建新创建的序列,随机输入一个数字,验证新创建的C语言。
c语言中判断素数的方法?
c语言判断素数(求素数)(两种方法)
也称为质数。所谓质数,是指除了1和它本身之外,不能被任何整数整除的数。例如,17是一个质数,因为它不能被2到16之间的任何整数整除。
1)思路:因此,判断一个整数M是否为素数,只要将M除以2到M-1之间的每一个整数即可。如果它们都不能被整除,那么M就是一个素数。
2):另外,判断方法可以简化。m不一定要被2到m-1之间的每一个整数去除,只需要被2到1之间的每一个整数去除。如果m不能被2和2之间的任何整数整除,则m一定是素数。比如判断17是不是质数,只需要用2到4之间的每一个整数除17就可以了。由于它们都不能被整除,所以可以确定17是一个质数。
原因:因为如果m能被2到m-1之间的任意整数整除,那么它的两个因子中一定有一个小于等于,另一个大于等于。比如16能被2、4、8整除,16=2*8,2小于4,8大于4,16=4*4,4=16,那么只需要确定2和4之间是否有因子。
请看对这两个想法的代码的分析。
1)想法的代码:
#包含ltstdio.hgt
int main(){
Int a=0 //素数的个数
Int num=0 //输入的整数
Printf(#34输入一个整数:#34)
scanf(#34%d#34,ampnum)
for(int I=2 litnumi){
if(num%i==0){
A //素数的个数加1
}
}
if(a==0){
Printf(#34%d是一个素数。
第34位,数字)
}否则{
Printf(#34%d不是质数。
第34位,数字)
}
返回0
}
2)想法的代码:
#包含ltstdio.hgt
#包含ltmath.hgt
void main(){
int//输入整数
int//周期数
int//m的平方根
Printf(#34输入一个整数:#34)
扫描f(#34%d#34,ampm)
//求平方根。请注意,sqrt()的参数是double类型。这里M的类型应该是强制转换的。
k=(int)sqrt((double)m)
for(I=2 lt=ki)
如果(m%i==0)
破裂
//如果所有的循环都完成了,那么M就是一个质数
//注意,在最后一个循环中,我会被执行。这时,i=k 1,于是就有了igtk
if(igtk)
Printf(#34%d是一个素数。
#34,m)
其他
Printf(#34%d不是质数。
#34,m)
返回0
}
两个代码的输出结果是相同的。
第一次运行的结果:
输入一个整数:1。
1是一个质数。
第二次运行的结果:
输入一个整数:97。
97是一个质数。
第三次运行的结果:
输入一个整数:10。
10不是质数。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。