分支与循环

简介: 分支与循环

目录

找最大公约数

法1

法2

求最小公倍数

判断是否是素数

法1

法2

模拟用户登录界面

找两个数的最大公约数

法1

法2辗转相除法求最大公约数

判断一个数是否是素数

模拟实现用户输入密码登入界面


找两个数的最大公约数

法1

int main()
{
  int m, n;
  scanf("%d %d", &m, &n);
  int ret = m < n ? m : n;//求得到m和n中较小的那个数
  while (1)
  {
    if (m%ret == 0 && n%ret == 0)//从m与n的最小值中开始减,减到if成立
    {
      break;//当ret同时能够被m和n整除时,ret就是最大公约数
    }
    ret--;
  }
  printf("%d", ret);
  return 0;
}

法2辗转相除法求最大公约数

int main()
{
  int m, n;
  scanf("%d %d", &m, &n);//假设输入24 18,ret=24%18=6,将n的值赋给m,m=18,ret的值赋给n,ret=6,18%6=0;while就停下来此时n的值就是最大公约数,若输入的是18,24,18/%24=18,也会把两者进行交换
  int ret = 0;
  while (ret = m % n)//ret为0就停下来了,
  {
    m = n;
    n = ret;
  }
  printf("%d", n);
  return 0;
}

image.png

判断一个数是否是素数

int main()
{
  int flag = 1;
  int num,i;
  scanf("%d", &num);
  for (i = 2; i < num; i++)//从2到num-1对num进行试除,一旦除成功就跳出去
  {
    if (num%i == 0)
    {
      flag = 0;
      break;
    }
  }
  if (flag)
  {
    printf("是素数");
  }
  else
    printf("不是素数");
  return 0;
}

image.png

#include<math.h>
int main()
{
  int i;
  int flag = 1;
  int num = 13;
  for (i = 2; i <= sqrt(num); i++)
  {
    if (num%i == 0)
    {
      flag = 0;
      break;
    }
}
  if (flag)
  {
    printf("是素数");
  }
  return 0;
}

模拟实现用户输入密码登入界面

用户只有3次输入密码的机会,三次都错误就退出界面

int main()
{
  int i = 0;
  char password[20] = "";
  假设密码是123456
  for (i = 0; i < 3; i++)
  {
    printf("请输入密码\n");
    scanf("%s", password);
    对字符串进行判断相等,用strcmp
    if (strcmp(password, "123456") == 0)
    {
      printf("登录成功\n");
    }
  }
  if (i == 3)//i最后自增到3<3不成立就不执行了,往下i=3,3次都失败了
  {
    printf(" 登录失败,退出程序\n");
  }
  return 0;
}
相关文章
|
10月前
|
分支和循环语句
分支和循环语句
50 1
|
7月前
|
分支与循环讲解
分支与循环讲解
|
9月前
|
分支和循环语句(3)
分支和循环语句(3)
49 0
分支和循环语句(3)
|
10月前
|
分支和循环(2)
分支和循环(2)
67 3
|
10月前
|
分支和循环(1)
分支和循环(1)
50 0