试题 算法提高 Monday-Saturday质因子

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

  这个问题是个简单的与数论有关的题目,看起来似乎是“求正整数的所有质因子”,但实际上并不完全是这样。

本题中需要定义以下几个概念:

  1. Monday-Saturday数

  对于一个正整数N,如果它除以7得到的余数是1或6,则可以写成N=7k+{1,6}的形式。更形象的,我们把这样的N称作“Monday-Saturday数”,简称“MS数”。

  2. Monday-Saturday因子

  如果对于两个MS数a,b,若存在一个MS数x,使得ax=b,那么就称a是b的一个“Monday-Saturday因子”,简称“MS因子”。

  3. Monday-Saturday质数

  如果对于MS数a,满足a>1且除了1和a之外a没有其他的MS因子,那么称a是一个“Monday-Saturday质数”,简称“MS质数”。

  注:对于传统意义上的质数,若它是一个MS数,则它一定是一个MS质数。但反之不必成立,例如27,它是一个MS质数但不是传统意义上的质数。

  4. Monday-Saturday质因子

  如果对于两个MS数a,b,若满足a是b的MS因子且a是一个MS质数,那么称a是b的一个“Monday-Saturday质因子”。

  例如:27是216的一个MS质因子(216=27*8)。

问题就是,给定一个MS数N,求其所有的Monday-Saturday质因子。

输入格式

  每个输入数据包含多行,每行一个整数N(保证N一定是MS数,1<N<300000)。

  输入的最后一行是一个整数1(对于这一行,你不必输出任何信息)。

  每个输入数据不超过100行。

输出格式

  对于每个N输出一行,表示N的所有Monday-Saturday质因子,按从小到大的顺序输出。格式形如“N: p1 p2 p3 …… pk”,注意行末无多余空格。

【样例输入】

  205920

  262144

  262200

  279936

  299998

  1

【样例输出】

  205920: 6 8 13 15 20 22 55 99

  262144: 8

  262200: 6 8 15 20 50 57 69 76 92 190 230 475 575 874 2185

  279936: 6 8 27

  299998: 299998

数据规模和约定

  1<N<300000,每个输入数据不超过100行。

package com.company;

import java.util.ArrayList;
import java.util.Scanner; public class Monday_Saturday质因子 {
public static boolean [] Not_MS_Num = new boolean[300005];
public static ArrayList<Integer> MS_Num = new ArrayList<>();
public static int N;
public static void main(String[] args) {
//先把所有的MS数都循环出来
for (int i = 6; i <= 300000; )
{
if (Not_MS_Num[i] == false)
{
MS_Num.add(i);
for (int k = 6; k * i <= 300000; )
{
Not_MS_Num[k * i] = true;
if (k % 7 == 6)
k += 2;
else
k += 5;
}
}
if (i % 7 == 6)
i += 2;
else
i += 5;
}
Scanner sc = new Scanner(System.in);
//这里直接输入数进行判断
N=sc.nextInt();
while (N > 1)
{
System.out.print(N+":"); for (int i = 0; i < MS_Num.size() && MS_Num.get(i) <= N; ++i)
{
if (N % MS_Num.get(i) == 0)
System.out.print(" "+MS_Num.get(i));
}
N=sc.nextInt();
System.out.println(); } }
}

Java实现 蓝桥杯 算法提高 Monday-Saturday质因子的更多相关文章

  1. Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)

    试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...

  2. Java实现 蓝桥杯 算法提高 小X的购物计划

    试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...

  3. Java实现 蓝桥杯 算法提高 天天向上(DP)

    试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...

  4. Java实现 蓝桥杯 算法提高 欧拉函数(数学)

    试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...

  5. Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)

    试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...

  6. Java实现蓝桥杯 算法提高 线段和点

    算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满 ...

  7. Java实现蓝桥杯-算法提高 P1003

    算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...

  8. Java实现蓝桥杯 算法提高 八皇后 改

    **算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ...

  9. Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)

    试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...

  10. Java实现 蓝桥杯 算法提高 分解质因数(暴力)

    试题 算法提高 分解质因数 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开 样例输入 ...

随机推荐

  1. python100例 1-10

    001 数字重组 题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? for i in range(1,5): for j in range(1,5): for k ...

  2. Typora + Powershell/bash + Git搭建自己的笔记

    网上都说什么onenote,evernote,ant等笔记.个人感觉这些都不算太好,还是自己用简易东西搭建一个笔记. 个人推荐使用typora写笔记. 上面既有文件目录,还能通过模糊搜索. 然后需要p ...

  3. SpringMVC底层执行原理

    一个简单的HelloSpringMVC程序 先在web,xml中注册一个前端控制器(DispatcherServlet) <?xml version="1.0" encodi ...

  4. goland pojie

    goland pojie 只适用于goland2019.1.3之前的版本,之后的版本没法支持. 1. 步骤 修改vm启动参数 激活正版 2. agent 网上有很多agent都是不能用的,我上传一个可 ...

  5. angular2 + bootstrap +jquery 实例

    一.Create a project process: 1.use Angular CLI to create an Angular Project "demo": need th ...

  6. 05 返回静态文件的多线程web框架

    05 返回静态文件的多线程web框架 服务器server端python程序(多线程版): import socket from threading import Thread,currentThrea ...

  7. 12.1面向对象编程的介绍(oop):封装,继承,多态,访问私有属性

    #封装:内部对数据封装.作用:1.保护数据,防止被随意修改:2.使外部的程序不需要关注内部的构造:只需要提供接口给外部进行访问即可.#继承:一个类就相当于一个模板.通过父类,子类的方式实现不同角色的共 ...

  8. Hyperledger Fabric Node SDK和应用开发

    Hyperledger Fabric 提供了多种语言的SDK版本,其中提出比较早.比较稳定而全面的是Node.js版本的SDK. 前面提到的fabric示例(如first-network和e2e-cl ...

  9. 关于mobileSelect.js日期数据获取封装,动态时间,封装

    传入起始年份和起始月份 得到 插件的标准格式放到 效果 let getAllDatas = (stime, etime) => { //接收传进来的参数月份 var data_M = etime ...

  10. java链接redis

    创建maven项目 2.导入jar包 <dependencies> <dependency> <groupId>redis.clients</groupId& ...