public class TestDemo220427 { public static void main(String[] args) { // 这里以求取1~100之间的素数为例 for(int i = 2;i <= 100;i++){//素数从2开始,所以从2开始产生到100的数 int flg = 1;//假设是素数 for(int j = 2;j < i;j++){ if(i%j == 0){ flg = 0; } } if(flg == 1){ System.out.println(i + "是素数!"); } } } }
public class TestDemo220427 { public static void main(String[] args) { // 这里以求取1~100之间的素数为例 for(int i = 2;i <= 100;i++){//素数从2开始,所以从2开始产生到100的数 int flg = 1;//假设是素数 for(int j = 2;j < i/2;j++){ if(i%j == 0){ flg = 0; } } if(flg == 1){ System.out.println(i + "是素数!"); } } } }# 🎜🎜# Es kann festgestellt werden, dass jede Zahl, die wir haben, durch die Multiplikation zweier Zahlen geteilt werden kann, z. B. 16: Es kann 1 16, 2 * 8, 4 * 4 sein. Sie können sehen, dass die erste Hälfte der Zahl ist kleiner als die Hälfte von sich selbst, also müssen wir nur prüfen, ob die erste Hälfte der Zahl durch sich selbst teilbar ist, denn solange es eine in der ersten Hälfte gibt, muss es eine Zahl in der zweiten Hälfte geben, die es sein kann mit sich selbst multipliziert, um sich selbst zu erhalten, sodass die Arbeitsbelastung halbiert wird. *1.3, versuche die Zahl zu dividieren, die kleiner als das Wurzelzeichen ihrer selbst ist
import java.lang.Math; public class TestDemo220427 { public static void main(String[] args) { // 这里以求取1~100之间的素数为例 for(int i = 2;i <= 100;i++){//素数从2开始,所以从2开始产生到100的数 int flg = 1;//假设是素数 for(int j = 2;j <= (int)(Math.sqrt(i));j++){ if(i%j == 0){ flg = 0; } } if(flg == 1){ System.out.println(i + "是素数!"); } } } }
import java.lang.Math; public class TestDemo220427 { public static void main(String[] args) { // 这里以求取1~100之间的素数为例 for(int i = 1;i <= 100;i += 2){//从1开始,产生到100的奇数 int flg = 1;//假设是素数 if(i == 1){ System.out.println((i+1) + "是素数!");//2这里需要单拎出来考虑,比较特殊 continue; } for(int j = 2;j <= (int)(Math.sqrt(i));j++){ if(i%j == 0){ flg = 0; } } if(flg == 1){ System.out.println(i + "是素数!"); } } } }
public class TestDemo220427 { public static boolean isleapYear(int year){ if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){ return true; } else{ return false; } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入年份:"); int year = scan.nextInt(); boolean ret = isleapYear(year); if(ret == true){ System.out.println(year + "是闰年!"); }else{ System.out.println(year + "不是闰年!"); } } }
import java.util.Scanner; public class TestDemo220427 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); int m = 0; while((m = a%b) != 0){//辗转相除法 a = b; b = m; } System.out.println(b); } }
import java.util.Scanner; public class TestDemo220427 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); for(int i = 1;i > 0;i++){ if((a*i)%b == 0){ System.out.println("最小公倍数:" + a*i); break; } } } }
import java.lang.Math; public class TestDemo220427 { public static boolean isNarnum(int num,int count){ int sum = 0; int tmp = num; while(tmp != 0){ sum += Math.pow(tmp%10,count); tmp /= 10; } if(sum == num){ return true; }else{ return false; } } public static void main(String[] args) { // 判断一个数是不是自幂数 Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); int count = 0; int tmp = num; while(tmp != 0){ count++; tmp /= 10; } boolean ret = isNarnum(num,count); if(ret == true){ System.out.println(num + "是一个" + count +"位自幂数!"); }else{ System.out.println(num + "不是自幂数!"); } } }
import java.util.Scanner; public class TestDemo220427 { public static int getOnecount(int num){ int count = 0; while(num != 0){//右移后不为0就继续统计 if((num& 1) == 1){ count++; } num = num >> 1; } return count; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); int ret = getOnecount(num); System.out.println(num + "的二进制位中1的个数 :" + ret); } }
public class TestDemo220427 { public static int getOnecount(int num){ int count = 0; for(int i = 0;i < 32;i++){ if((num & (1 << i)) != 0){ count++; } } return count; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); int ret = getOnecount(num); System.out.println(num + "的二进制位中1的个数 :" + ret); } }Anstatt die Zahl zu diesem Zeitpunkt nach links zu verschieben, verschieben wir 1 nach links und führen dann ein bitweises UND mit der Zahl durch, da das Ergebnis nur 0 oder nicht 0 sein kann Nicht-0 bedeutet, dass die Position 1 im Ergebnis der Linksverschiebung 1 entspricht, daher werden wir sie zu diesem Zeitpunkt zählen. Obwohl diese Methode das Problem auch lösen kann, müssen Sie 32 Mal nach links verschieben, da Sie nicht wissen können, wie viele Einsen vor dieser Zahl stehen, und nur alle Bits vergleichen können. 5.2, das Prinzip von n & (n-1) Eliminierung von 1
import java.util.Scanner; public class TestDemo220427 { public static int getOnecount(int num){ int count = 0; while(num != 0){ num = num&(num-1); count++; } return count; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); int ret = getOnecount(num); System.out.println(num + "的二进制位中1的个数 :" + ret); }
import java.util.Scanner; public class TestDemo220427 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); if((num & (num-1)) == 0){ System.out.println("是2的k次方数!"); }else{ System.out.println("不是2的k次方数!"); } } }
Das obige ist der detaillierte Inhalt vonBeispielanalyse der Java-Syntax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!