1.鬼谷猜想:
鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 1。
import java.util.Scanner; public class Test { public static void gg() { Scanner s = new Scanner(System.in); System.out.println("请输入一个自然数"); int gg=s.nextInt(); while(gg!=1) { if(gg%2==0) { gg=gg/2; }else { gg=gg*3+1; } } System.out.println(gg); s.close(); } public static void main(String[] args) { gg(); } }
2.求完全数:
编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数。
完全数分解公式:如果p是质数,且2^p-1也是质数,那么(2^p-1)*2^(p-1)便是一个完全数。
public class Test { public static void cn() { for(int i =2;i<=1000;i++){ int p = 0; for(int j = 2;j<i;j++){ if(i%j==0){ p=1; } } if(p==0){ for(int c=1;c<=10000;c++) { double a = Math.pow(2, i)-1; double b = Math.pow(2, i-1); if(c==a*b) { System.out.println("完全数:"+c); } } } } } public static void main(String[] args) { cn(); } }
3.整除
一个整数的各位数字之和能被 9 整除,则该数也能被 9 整除。编程验证给定的整数能否被 9 整除。
import java.util.Scanner; public class Test { public static void nine() { Scanner s = new Scanner(System.in); System.out.println("请输入一个整数:"); int i = s.nextInt(); String st = Integer.toString(i); int sum =0; for(int j=0;j<=st.length()-1;j++) { //截取每一位数字的字符串并转成数字进行相加 int it = Integer.parseInt(st.substring(j, j+1)); sum+=it; } if(sum%9==0) { System.out.println("该数可以被9整除"); }else { System.out.println("该数不可以被9整除"); } s.close(); } public static void main(String[] args) { nine(); } }
4.质因数分解
将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。
import java.util.ArrayList; import java.util.Scanner; public class Test { public static void fj() { Scanner s = new Scanner(System.in); System.out.println("请输入一个正整数:"); int in = s.nextInt(); ArrayList<Integer> a = new ArrayList<Integer>(); StringBuilder sb = new StringBuilder(); for(int i =2;i<=1000;i++){ int p = 0; for(int j = 2;j<i;j++){ if(i%j==0){ p=1; } } if(p==0){ a.add(i);//将1000以内的质数加入List } } int d = in; for(int j=0;j<a.size();j++) { while(d%a.get(j)==0) {//除List内的数,直到不能整除 d=d/a.get(j);//除完赋值,做下一次的分子 String st = Integer.toString(a.get(j))+"*"; //把符合条件的质数加入StringBuilder sb.append(st); } } System.out.println(in+"="+sb.substring(0, sb.length()-1));//截取一下,因为最后一个数多了个* s.close(); } public static void main(String[] args) { fj(); } }