7.11- Exercices de structure en boucle
1. Déterminez le nombre de nombres premiers compris entre 2 et 100 et sortez tous les nombres premiers.
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. Imprimez tous les "numéros de la jonquille", le soi-disant "numéro de la jonquille" désigne un numéro à trois chiffres,
- La somme des cubes des chiffres est égale au nombre lui-même.
- Par exemple: 153 est un "numéro de jonquille"
- Parce que 153 = 1 cube + 5 cube + 3 cube.
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. Trouvez la valeur de s = a + aa + aaa + aaaa + aa ... a, où a est un nombre.
- Par exemple, 5 + 55 + 555 + 5555 + 55555 (pour le moment, 5 nombres sont additionnés).
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. Décomposez un entier positif en facteurs premiers. Par exemple: saisissez 90 et imprimez 90 = 2 3 3 * 5.
- Pour décomposer les facteurs premiers de n, vous devez d'abord trouver le plus petit nombre premier k, puis effectuer les étapes suivantes:
- (1) Si ce nombre premier est exactement égal à n, cela signifie que le processus de décomposition des facteurs premiers est terminé, il suffit de l'imprimer.
- (2) Si n n'est pas égal à k, mais que n est divisible par k, la valeur de k doit être imprimée, et le quotient de n divisé par k doit être utilisé comme un nouvel entier positif n, et répéter la première étape.
- (3) Si n n'est pas divisible par k, utilisez k + 1 comme valeur de k et répétez la première étape.
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 nombre est exactement égal à la somme de ses facteurs, ce nombre est appelé "nombre final".
- Par exemple, 6 = 1 + 2 + 3. Programmation pour trouver tous les nombres à moins 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);
}
}
}
}