1、输出100以内的所有素数,每行显示5个;并求和
public static void main(String[] args) {
//输出数字个数为0
int count = 0;
//输出数字的和
int sum = 0;
//1不是素数,从2开始.i循环一个,j循环一遍
for (int i = 2; i <= 100; i++) {
//做个标记,便于输出;当i迭代之后,重新定义flag的值
boolean flag = true;
for (int j = 2; j < i; j++) {
//当i%j==0时,说明该数不是素数,素数是只能被1和它本身整除的数
if (i % j == 0) {
//此时改变flag的值为false
flag = false;
//结束循环,执行for循环后面的代码
break;
}
}
//根据flag的值来判断,若为true则执行{}里的代码,若是false,则执行if结构后的代码
if (flag) {
System.out.print(i + "\t");
count++;
if (count % 5 == 0) {
System.out.println();
}
}
sum+=i;
}
System.out.println("一百以内的素数和="+sum);
System.out.println("程序执行完毕");
}
}
2、求两个整数的最大公约数和最小公倍数
public static void main(String[] args) {
int x, y, max, min, a, remainder, c;
Scanner sc = new Scanner(System.in);
System.out.println("请输入俩个整数:");
x = sc.nextInt();
y = sc.nextInt();
if (x > y) { // 将输入的两个值,大的赋给max,小的赋给min.
max = x;
min = y;
} else {
max = y;
min = x;
}
a = max * min;
remainder = max % min; // 求最大公约数算法:
while (remainder != 0) { // 1.max 对 min
// 进行求余,余数用remainder表示(reminder=max%min)
max = min; // 2.如果remainder等于0则min就是 max和min的最大公约数
min = remainder; // 3.如果reminder不等于0,则将min赋给max,将reminder赋给min。
remainder = max % min; // 4.进行1.2.两步最后min即为最大公约数
}
c = a / min; // 求最小公倍数的的算法:
System.out.println("最大公约数是" + min); // 最小公倍数 = (max * min)/最大公约数。
System.out.println("最小公倍数是" + c);
}