计算1-x内的质数, 结果保存在mysql中。

计算1-x内的素数, 结果保存在mysql中。
要求:
1.
使用y个线程计算
2. 尽量优化算法
3. xy可配置

单线程

判断质数和循环遍历给定的范围,代码都写在一个“主类”的main函数里,适合用于理解"判断1个正整数是否为质数"的方法体。

/**
 * 键盘输入一个数字x,求出1~x中间的所有质数
 */

public class TestZhishu {


    public  static void main(String[] args)  {
        System.out.println("----程序开始运行----");
        // 通过键盘输入x和y的参数数值
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入求解参数x:");
        int x = sc.nextInt();
        System.out.println("请输入配置参数y:");
        int y = sc.nextInt();
        

        //调用本类里的方法的算法求结果并打印输出,单线程
        List<Integer> list1 = qiuZhishu(x);
        System.out.println(list1);

    }

    /**
     * 从1开始遍历直到正整数x
     * @param x
     * @return
     */
    public static List<Integer> qiuZhishu(int x) {

        List<Integer> list = new ArrayList<Integer>();
        //实际求解质数的算法被循环调用
        //从1开始遍历
        for( int i=1; i<=x;i++){
            if( isPrime(i) ){
            //把符合条件的质数放到容器里
                list.add(i);
            }

        }
        return list;
    }

    /**
     * 判断一个正整数是否为质数
     * @param num
     * @return
     */
    public static boolean isPrime(int num) {
        double sqrt = Math.sqrt(num);
        if (num < 2) {
            return false;
        }
        if (num == 2 || num == 3) {
            return true;
        }
        if (num % 2 == 0) {// 先判断是否为偶数,比2大的偶数都不是质数
            return false;
        }
        for (int j = 3; j <= sqrt; j+=2) {
            if (num % j == 0) {
                return false;
            }
        }
        return true;
    }

}

多线程

1、数据库设计

-- 创建数据库yiqibing
CREATE DATABASE yiqibing DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 使用创建的这张数据库表用于持久化
use yiqibing;

-- 表头的字符串用` `括起来
CREATE TABLE `Number`(
`id` int NOT NULL AUTO_INCREMENT ,
`num_x` INTEGER NOT NULL ,
`num_y` INTEGER NOT NULL ,
`answers` VARCHAR(21840) NULL,
PRIMARY KEY  (`id`)
);

2、实体类

package com.yiqibing.pojo;

import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;

@Data
@Table(name = "Number")
public class Number {
    @KeySql(useGeneratedKeys = true)
    @Id
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康冕峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值