首页 > 编程知识 正文

蓝桥杯素数,蓝桥杯等级

时间:2023-05-05 09:13:08 阅读:272520 作者:1265

// 定义阶乘 n! = 1 × 2 × 3 × · · · × nn!=1×2×3×⋅⋅⋅×n。
//
// 请问 100!(100的阶乘)有多少个正约数。

//这一题是可以用公式的

import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.ArrayList;

public class 阶乘约数 {

public static void main(String[] args) { // TODO Auto-generated method stub BigInteger a=new BigInteger("1"); for(int i=1;i<101;i++) { String b=""; b=b+i; a=a.multiply(new BigInteger(b)); } int t=2; String mm=""; int z=0; ArrayList chucun = new ArrayList();//存储全部的指数 while(1==1) { if(zhishu(t)) {//判断是不是质数 mm=mm+t;//将这个数字转换成字符串 if(a.equals(new BigInteger("1"))) {//结束条件 break; } a=a.divide(new BigInteger(mm));//重新给a赋值 z++;//调用质数的次数 if(!a.mod(new BigInteger(mm)).equals(new BigInteger("0"))) {//当a不在被当前这个质数整除的时候 chucun.add(z+1);//将调用这个质数的次数赋值给集合 z=0;//回归原位 t++;//加一 } mm="";//回归原为 } if(zhishu(t)==false){//判断t不是质数的时候,加加 t++; } } BigInteger kk = new BigInteger("1"); String gg=""; for(int i=0;i<chucun.size();i++){//将集合的每个数字都调用相乘 int sss=(int) chucun.get(i); gg=gg+sss;//转换成字符串 kk=kk.multiply(new BigInteger(gg));//每一个全部相乘 gg="";//回到原位 } System.out.println(kk);//最后输出}public static boolean zhishu(int a) { for(int i=2;i<=a;i++) { if(i==a) { return true; } if(a%i==0) { break; } } return false;}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。