安徽工业大学排名-安徽冶金科技职业学院
C语言判断一个数是否是素数
分享到:
QQ空间
新浪微博
腾讯微博
豆瓣
人人网
素数又称质数。所谓素数是指除了1和它本身以外 ,不能被任何整数整除的数,例如17就
是素数,因为它不能被2~16的任一整数整除。
思路1):因此判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,
如果都不能被整除,那么m就是一个素数。
思路2):另外判断方法还可以简化。m不必被 2 ~ m-1 之间的每一个整数去除,只需被 2
~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必
定是素数 。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都
不能整除,可以判定 17是素数。
原因:因为如果m能被 2 ~ m-1 之间任一整数整除,其二个因子必 定有一个小于或等于
,另一个大于或等于。例如16能被2,4,8整除,16=2*8,2小于4,8 大于4,
16=4*4,4=√16,因此只需判定在2~4之间有无因子即可。
两种思路的代码请看解析。
思路1)的代码:
1.
#include
2.
3.
int main(){
4.
int a=0; 素数的个数
5.
int num=0; 输入的整数
6.
7.
printf(输入一个整数:
8.
scanf(
9.
10.
for(int i=2;i
if(num%i==0){
12.
a++; 素数个数加1
13.
}
14.
}
15.
16.
if(a==0){
17.
printf(是素数。n
18.
}else{
19.
printf(不是素数。n
20.
}
21.
22.
return 0;
23.
}
思路2)的代码:
#include
#include
void main(){
int m; 输入的整数
int i; 循环次数
int k; m 的平方根
printf(输入一个整数:
scanf(
求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类
型
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
if(m%i==0)
break;
如果完成所有循环,那么m为素数
注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k
if(i>k)
printf(是素数。n
else
printf(不是素数。n
return 0;
}
三种方法求阶乘
*--- 1 利用阶乘的定义求解阶乘 ---*
#include
void main()
{ int i,n;
long f=1;
scanf(
for(i=1;i<=n;i++)
f=f*i;
printf(
getch();
}
*--- 2 递归方法求阶乘 --- *
#include
long fact(int n)
{ long s;
if(n<=1)
s=1;
else
s=n*fact(n-1);
return s;
}
void main()
{int num;
scanf(
printf(
getch();
}
*--- 3 利用静态变量求阶乘 ---*
#include
long fact(int n)
{ static long f=1;
f=f*n;
return f;
}
void main()
{ int i;
for(i=1;i<=5;i++)
printf(
getch();
}
cute英语怎么读音-锻炼口才
木兰诗全文翻译-四川职业技术学院单招
摘抄好段-写雪景的诗
套路对方说我喜欢你-as引导的从句
中国4大发明-helped
树之以桑句式-铁岭师专
2020年高考倒计时-人力资源认证培训
哄堂大笑拼音-短板效应
本文更新与2020-11-09 21:54,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/441528.html
-
上一篇:excel表格向下填充
下一篇:C语言实例 第五周 第二次课答案