day15

啊????!!!已经过了一半了,感觉没学到多少东西,每天打卡两题就润了,主要是学校的屁事太多了,一堆课,毛概等思政课,简直了,一堆**课浪费时间,代码又不能写,还有抽人回答问题,套都逃不了,哎!

  1. 斐波那契数列与7

package daka;

import java.math.BigInteger;

import java.util.*;

/*

* 斐波那契数列

* 请问, 斐波那契数列的第 1 至 202202011200 项(含)中,

* 有多少项的个位 是 7 。

*

* 每60项的余数形成一个周期(余数0将在60个数之后循环一次);;26960268160

*/

public class fbnq {

public static void main(String[] args) {

int o=1;int p=1;

int count =0;int sum =0;

for(long i=1;i<60;i++) {

sum = (o + p) % 10;

if(sum ==7) {

count++;

}

p = o; o = sum;

}

System.out.println(8 * 202202011200l / 60);

}

}

2寻找质数

package daka;

import java.io.*;

import java.math.BigInteger;

/*从两百万个数据找出共有多少个质数

*

*

*/

public class shiyan {

static String filePath = "D:\\桌面保存\\primes.txt";

static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));

public static void main(String[] args) throws IOException {

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filePath))));

String line = "";

int cnt =0;

while((line = in.readLine()) != null) {

BigInteger num = new BigInteger(line);

if(num.isProbablePrime(10)) {

cnt++;

}

}

out.print(cnt);

out.flush();

in.close();

}

}

  1. 质因数的个数

给一个60%的样例

package daka;

import java.util.*;

/*质因数的个数

*

*

*/

public class zhiyinshu {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

ArrayList<Integer> list = new ArrayList<>();

for(int i=2;i * i<= n;i++) {

if(n % i ==0 && isPrime(i)) {

list.add(i);

int x = n / i;

if(x != i && isPrime(x)) {

list.add(x);

}

}

}

System.out.println(list.size());

}

private static boolean isPrime(int num) {

if(num<=1) {

return false;

}

for(int i=2;i<=Math.sqrt(num);i++) {

if(num % i ==0) {

return false;

}

}

return true;

}

}

100%样例

package daka;

import java.util.*;

import java.io.*;s

/*质因数的个数

* 分解质因数

* 在num的sqrt范围中循环,寻找每一位质因数,加入set

*/

public class zhiyinshu {

static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));

public static void main(String[] args) {

Long num = Long.parseLong(in.readLine());

Set<Long> set = new HashSet<>();

long p = 2L;

while(p * p <= num) {

while(num % p ==0) {

num /= p;//num 此时等于另一个质因数,每次模拟的都是质因数

set.add(p);

}

p++;

}

//p的平方> num,num 是一个大于根号num的质因数

if(num > 1) {

set.add(num);

}

out.print(set.size());

in.close();

out.flush();

}

}

4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

螺上螺

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

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

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

打赏作者

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

抵扣说明:

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

余额充值