7.11- Ejercicios de estructura de bucle
1. Determina cuántos números primos hay entre 2 y 100 y genera todos los números primos.
public class zy01 {
public static void main(String[] args) {
int s=0;
for (int i = 2; i <=100 ; i++) {
for (int j = 2; j <i ; j++) {
s = i%j;
if (s==0){
break;
}
}
if (s!=0){
System.out.print(+i+" ");
}
}
}
}
2. Imprima todos los "números narcisos", el llamado "número narciso" se refiere a un número de tres dígitos,
- La suma de los cubos de los dígitos es igual al número en sí.
- Por ejemplo: 153 es un "número narciso".
- Porque 153 = 1 cubo + 5 cubos + 3 cubos.
public class zy02 {
public static void main(String[] args) {
for (int i = 100; i <1000 ; i++) {
int a = i/100%10;
int b = i/10%10;
int c = i%10;
if (i==a*a*a+b*b*b+c*c*c){
System.out.print(+i+" ");
}
}
}
}
3. Encuentre el valor de s = a + aa + aaa + aaaa + aa ... a, donde a es un número.
- Por ejemplo, 5 + 55 + 555 + 5555 + 55555 (en este momento, se suman 5 números).
public class zy03 {
public static void main(String[] args) {
System.out.print("输入1-9之间的一个数:");
Scanner sc = new Scanner(System.in);
double n=sc.nextInt();
double k=n;
double sum =n;
for (int i = 1; i <=n-1 ; i++) {
k = k+n*Math.pow(10,i);
sum =sum+k;
}
System.out.println(+sum);
}
}
4. Descomponga un número entero positivo en factores primos. Por ejemplo: ingrese 90 e imprima 90 = 2 3 3 * 5.
- Para descomponer los factores primos de n, primero debe encontrar el número primo más pequeño k y luego completar los siguientes pasos:
- (1) Si este número primo es exactamente igual an, significa que el proceso de descomposición de factores primos ha terminado, simplemente imprímalo.
- (2) Si n no es igual a k, pero n es divisible por k, el valor de k debe imprimirse y el cociente de n dividido por k debe usarse como un nuevo entero positivo n, y repita el primer paso.
- (3) Si n no es divisible por k, use k + 1 como el valor de k y repita el primer paso.
public class zy04 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个正整数:");
int num=sc.nextInt();
System.out.print(num+"=");
int k=2;
int g =2;
int num1 = num;
do{
if(num%k==0){
System.out.print(k+"*");
num/=k;
}else{
k=k+1;
}
}while(num!=k);
System.out.print(k+"\n");
if(num1==k){
num=num+1;
System.out.print("num+1的值作为k的值重新计算:");
System.out.print(+(num)+"=");
do{
if(num%g==0){
System.out.print(g+"*");
num/=g;
}else{
g=g+1;
}
}while(num!=g);
System.out.print(g);
}
}
}
5. Si un número es exactamente igual a la suma de sus factores, este número se llama "número final".
- Por ejemplo, 6 = 1 + 2 + 3. Programación para encontrar todos los números dentro de 1000
public class zy05 {
public static void main(String[] args) {
for (int i = 1; i <1000 ; i++) {
int k=0 ;
for (int j = 1; j <i ; j++) {
if (i%j==0){
k = k+j;
}
}
if (i==k) {
System.out.println(+i);
}
}
}
}