训练题
素数的判断条件为除开1和本身没有其他的因子。
class D05_3{
public static void main(String[] args){
int count =0;
for(int num=2;num<=1000;num++){//num表示2到1000之间的所有整数
boolean flag=true;//定义一个布尔类型
for(int m=2;m<=num-1;m++){//判断是否为素数,
if(num%m==0){
flag=false;
break;
}
}
if(flag){//素数输出
count++;
System.out.print(num+" ");
if(count%8==0){//每八个数换一行
System.out.println();
}
}
}
}
}
import java.util.Scanner;
class D05_4{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);//提示输入一个数字
System.out.print("请输入一个数字:");
int imax=scanner.nextInt();
double sum=0;
double flag=1;
for(int i=1;i<=imax;i++){
sum+=flag/(2*i-1);//计算sum
flag=-flag;
}
double pi =sum*4;//计算pi
System.out.print(pi);
}
}
完全数就是本身等于各个位上的数字之和
class D05_5{
public static void main(String[]args){
int sum=0;
for( int n=2;n<=10000;n++){//定义n为2到10000之间所有整数
for(int i =1;i<=n/2;i++){//计算各个位上的数字之和
if(n%i==0){
sum+=i;
}
}
if(n==sum){//比较各个位上的数字之和是否等于本身,是救输出这个数字
int temp=n;
System.out.println("完全数有"+temp);
}
sum =0;
}
}
}
本题先计算另起一个函数计算数字各个位置的数字之和,再在主函数中调用
import java.util.Scanner;
class D05_6{
public static void main(String[]args){
Scanner scanner =new Scanner(System.in);//提示输入一个数字
System.out.print("请输入一个数字:");
int num = scanner.nextInt();
int sum = 9+sumDigits(num);//调用函数sumDigits
System.out.print(sum);
}
public static int sumDigits(int num) {
int a=0;
while(true){//利用循环计算各个位上的数之和
a+=num%10;
num=num/10;
if(num==0){
break;
}
}
return a;//返回 a
}
}
本题另起一个函数,直接调用。
import java.util.Scanner;
class D05_8{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);//提示用户输入
System.out.print("请输入一个数字:");
int n =scanner.nextInt();
displaypattern(n);//调用函数displaypattern
}
public static void displaypattern(int n) {
for(int i=1;i<=n+1;i++){
for(int k=1;k<=n-i+1;k++){
System.out.print(" ");//打印空格,空格数随行数增加而减小
}
for(int j=1-i;j<0;j++){
System.out.print(Math.abs(j)); //打印数字J
}
System.out.println();
}
}
}