判断2-100之间有多少个素数,并输出所有素数。
素数又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
如5=1*5;5只有1和5这两个因数。我们采用for循环的方法。外循环确定判断的对象,内循环寻找判断对象的因子。如果有除1和它本身以外的数则不满足要求,定义为false;
public static void main(String[] args) {
int num=0;
//外循环,确定2——100之间的数;
for (int i = 2; i <= 100; i++) {
boolean a = true;
//内循环,寻找i的因数
for (int j = 2; j < i; j++) {
//如果有能被整数的数,则说明i有因数,不符合质数要求
if (i % j == 0) {
a = false;
break;
} else {
a = true;
}
}if (a == true) {
num++;
System.out.println(i);
}
}System.out.println("总共有"+num+"个素数");
}
2、将一个正整数分解质因数。例如:输入90,打印出90=233*5
对一个数分解质因数,应该先找到一个最小的质数,如果这个质数恰巧等于分解的数,则直接打印即可。如果不相等,那么判断能否被质数整除,如果可以,则用除过后的数当做新的整数进行分解,直到没有其他质数。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n=input.nextInt();
System.out.print(n+"=");
//寻找键入的整数的质数
for (int k = 2; k <=n; k++) {
while (n != k) {
//判断是否是键入数的质数
if (n % k == 0) {
// 输出质数
System.out.print(k + "*");
n = n / k;
} else {
break;
}
}
}
System.out.println(n);
}
3、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如5+55+555+5555+55555(此时共有5个数相加)。
这题的关键是要找出每项值之间的关系。
后一项都是前一项的10倍再加上键入的数,总项数和键入数相等。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//输入10以内的整数
System.out.print("请输入一个数字:");
int n=input.nextInt();
int a=n;
int sum=0;
//把每产生的一项进行相加得到新的总和
for (int i = 0; i <a; i++) {
sum+=n;
n=n*10;
n=n+a;
}
System.out.println("sum="+sum);
}