课堂知识点
1.最大公因数/最小公倍数
(1)取两个数的最大值和最小值
min(x,y): 取x,y中小的数
max(x,y): 取x,y中大的数
(2) 求x和y的最大公因数
从min(x,y)~1之间,找到第一个公因数
cin>>x>>y;
for (int a=min(x,y); a>=1; a--)
{
if(x%a==0 && y%a==0) //找到第一个公因数,就是最大公因数
{
cout<<a;
return 0; //结束程序
}
}
(3) 求x和y的最小公倍数
从max(x,y)~x*y之间,找到第一个公倍数
cin>>x>>y;
for (int a=max(x,y); a<=x*y; a++)
{
if(a%x==0 && a%y==0) //找到第一个公倍数,就是最小公倍数
{
cout<<a;
return 0; //结束程序
}
}
2、个数统计
• 循环前:设置计数变量,int c=0;
• for循环:控制循环范围(注意:初值、结束值和跳步)
• 循环内:用if判断符合条件的数,若符合条件,则计数变量加1.
• 循环结束后:输出计数变量的统计值。
• 框架代码://判断a~b之间能整除7的数有几个
int c=0;
for (int x=a; x<=b; x++)
{
if (x%7==0)
{
c++;
}
}
cout<<c;
3、判断素数(质数)
• 假设判断n是否为质数,则循环1~n,计数它的因子个数,如果统计结果等于2,则说明n是质数,否则不是质数。
• 框架代码://判断n是否为质数
cin>>n;
int c=0;
for (int x=1; x<=n; x++)
{
if (n%x==0)
{
c++;
}
}
if (c==2)
{
cout<<"yes";
}
else
{
cout<<"no";
}