输出前五十个素数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 0;
for(int n=2; count<50 ;n++)
{
int isPrime = 1;
for (int i = 2; i<n; i++)
{
if( n % i == 0)
{
isPrime = 0;
break;
}
}
if( isPrime == 1 )
{
System.out.print(n + " ");
count ++;
}
}
System.out.println();
System.out.println(count);
}
}
改进输出前五十个素数
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 0;
for(int n=2; count<50 ;n++)
{
int isPrime = 1;
for (int i = 2; i<Math.sqrt(n); i++)//此处可以带等号也可以不带
{
if( n % i == 0)
{
isPrime = 0;
break;
}
}
if( isPrime == 1 )
{
System.out.print(n + " ");
count ++;
}
}
System.out.println();
System.out.println(count);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
/*
打表素数 输出100以内的素数
除去素数的倍数 剩下的数都是素数
*/
boolean[] isPrime = new boolean[100];
for( int i = 0; i<isPrime.length; i++)
{
isPrime[i] = true;
}
for( int i = 2; i < isPrime.length; i++)
{
if( isPrime[i] )
{
for( int k = 2; i*k < isPrime.length; k++)
{
isPrime[i*k] = false;
}
}
}
for ( int i = 2; i < isPrime.length; i++)
{
if(isPrime[i])
{
System.out.print(i + " ");
}
}
System.out.println();
/*
输出前50个素数
*/
int[] primes = new int[50];
primes[0] = 2;
int cnt = 1;//两层含义:1下一个素数对应的下标 2当前数组有多少个素数
MAIN_LOOP:
for ( int x = 3;cnt<50 ; x++)
{
for ( int i = 0; i < cnt; i++)
{
if( x % primes[i] == 0)
{
continue MAIN_LOOP;
}
}
primes[cnt++] = x;
}
for (int k:primes)
{
System.out.print(k+" ");
}
}
}
f(n)=1+1/2+...+1/n
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
for( int i = 1; i<=n; i++)
{
sum += 1.0/i;
}
System.out.println(sum);
System.out.printf("%.2f",sum);
}
}
f(n)=1-1/2+1/3-1/4+...+1/n
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
int sign = 1;
for( int i = 1; i<=n; i++)
{
sum += sign * 1.0/i;
sign = -sign;
}
System.out.println(sum);
System.out.printf("%.2f",sum);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
int sign = 1;
for( int i = 1; i<=n; i++)
{
// sum += sign * 1.0/i;
// sign = -sign;
if( i%2 == 1)
{
sum += 1.0/i;
}
else
{
sum -= 1.0/i;
}
}
System.out.println(sum);
System.out.printf("%.2f",sum);
}
}
最大公约数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int gcd = 1;
for ( int i = 2; i<=a && i<=b; i++)
{
if( a % i == 0 && b % i == 0 )
{
gcd = i;
}
}
System.out.println(gcd);
}
}
辗转消除最大公约数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int gcd = 1;
int oa = a;
int ob = b;
while( b != 0 )
{
int r = a % b;
a = b;
b = r;
gcd = a;
}
System.out.println(oa+ "和" + ob + "最大公约数是" + gcd);
}
}
1
素数和(5分)
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int count = 0;
int sum = 0;
int[] arr=new int[10001];
for(int j=2; j<=10001 ;j++)
{
int isPrime = 1;
for (int i = 2; i<j; i++)
{
if( j % i == 0)
{
isPrime = 0;
break;
}
}
if( isPrime == 1 )
{
// System.out.print(j + " ");
count ++;
arr[count] = j;
}
}
for ( int k = n; k<=m ; k++ )
{
sum += arr[k];
}
// System.out.println();
System.out.println(sum);
}
}
2
念整数(5分)
题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[]arr=new int [10];
int number = in.nextInt();
int count = 0;
if ( number < 0 )
{
number = - number;
System.out.print("fu" + " ");
}
else if ( number == 0 )
{
System.out.print("ling");
}
if( number > 0 )
{
while(number!=0)
{
arr[count] = number % 10;
count ++;
number = number / 10;
}
}
for (int i = count-1; i>=0 ;i--)
{
if( i!=0 )
{
switch(arr[i])
{
case 0: System.out.print("ling ");
break;
case 1: System.out.print("yi ");
break;
case 2: System.out.print("er ");
break;
case 3: System.out.print("san ");
break;
case 4: System.out.print("si ");
break;
case 5: System.out.print("wu ");
break;
case 6: System.out.print("liu ");
break;
case 7: System.out.print("qi ");
break;
case 8: System.out.print("ba ");
break;
case 9: System.out.print("jiu ");
break;
default:
break;
}
}
else if( i==0 )
{
switch(arr[i])
{
case 0: System.out.print("ling");
break;
case 1: System.out.print("yi");
break;
case 2: System.out.print("er");
break;
case 3: System.out.print("san");
break;
case 4: System.out.print("si");
break;
case 5: System.out.print("wu");
break;
case 6: System.out.print("liu");
break;
case 7: System.out.print("qi");
break;
case 8: System.out.print("ba");
break;
case 9: System.out.print("jiu");
break;
default:
break;
}
}
}
}
}