Resistors in Parallel(找规律+大数)

题意:https://codeforces.com/group/ikIh7rsWAl/contest/254825/problem/E

给你一个n,计算n / Sigma(1~n)的d(是n的只出现一次的因数)。

思路:

反正就是打表找规律,3组数据也能找规律,你们是真的nb嗷。

  1 import java.math.BigInteger;
  2 import java.util.Scanner;
  3  
  4 public class Main{
  5     public static void main(String[] args){
  6         Scanner cin=new Scanner(System.in);
  7  
  8         int T=cin.nextInt();
  9         BigInteger n1=new BigInteger("1");
 10         BigInteger n2=new BigInteger("2");
 11         BigInteger n3=new BigInteger("3");
 12         BigInteger n4=new BigInteger("4");
 13         BigInteger n5=new BigInteger("5");
 14         BigInteger n6=new BigInteger("6");
 15         BigInteger a[]=new BigInteger[104];
 16         a[1]=new BigInteger("2");
 17         a[2]=new BigInteger("3");
 18         a[3]=new BigInteger("5");
 19         a[4]=new BigInteger("7");
 20         a[5]=new BigInteger("11");
 21         a[6]=new BigInteger("13");
 22         a[7]=new BigInteger("17");
 23         a[8]=new BigInteger("19");
 24         a[9]=new BigInteger("23");
 25         a[10]=new BigInteger("29");
 26         a[11]=new BigInteger("31");
 27         a[12]=new BigInteger("37");
 28         a[13]=new BigInteger("41");
 29         a[14]=new BigInteger("43");
 30         a[15]=new BigInteger("47");
 31         a[16]=new BigInteger("53");
 32         a[17]=new BigInteger("59");
 33         a[18]=new BigInteger("61");
 34         a[19]=new BigInteger("67");
 35         a[20]=new BigInteger("71");
 36         a[21]=new BigInteger("73");
 37         a[22]=new BigInteger("79");
 38         a[23]=new BigInteger("83");
 39         a[24]=new BigInteger("89");
 40         a[25]=new BigInteger("97");
 41         a[26]=new BigInteger("101");
 42         a[27]=new BigInteger("103");
 43         a[28]=new BigInteger("107");
 44         a[29]=new BigInteger("109");
 45         a[30]=new BigInteger("113");
 46         a[31]=new BigInteger("127");
 47         a[32]=new BigInteger("131");
 48         a[33]=new BigInteger("137");
 49         a[34]=new BigInteger("139");
 50         a[35]=new BigInteger("149");
 51         a[36]=new BigInteger("151");
 52         a[37]=new BigInteger("157");
 53         a[38]=new BigInteger("163");
 54         a[39]=new BigInteger("167");
 55         a[40]=new BigInteger("173");
 56         a[41]=new BigInteger("179");
 57         a[42]=new BigInteger("181");
 58         a[43]=new BigInteger("191");
 59         a[44]=new BigInteger("193");
 60         a[45]=new BigInteger("197");
 61         a[46]=new BigInteger("199");
 62         a[47]=new BigInteger("211");
 63         a[48]=new BigInteger("223");
 64         a[49]=new BigInteger("227");
 65         a[50]=new BigInteger("229");
 66         a[51]=new BigInteger("233");
 67         a[52]=new BigInteger("239");
 68         a[53]=new BigInteger("241");
 69         a[54]=new BigInteger("251");
 70         a[55]=new BigInteger("257");
 71         a[56]=new BigInteger("263");
 72         a[57]=new BigInteger("269");
 73         a[58]=new BigInteger("271");
 74         a[59]=new BigInteger("277");
 75         a[60]=new BigInteger("281");
 76         a[61]=new BigInteger("283");
 77         a[62]=new BigInteger("293");
 78         a[63]=new BigInteger("307");
 79         a[64]=new BigInteger("311");
 80         a[65]=new BigInteger("313");
 81         a[66]=new BigInteger("317");
 82         a[67]=new BigInteger("331");
 83         a[68]=new BigInteger("337");
 84         a[69]=new BigInteger("347");
 85         a[70]=new BigInteger("349");
 86         a[71]=new BigInteger("353");
 87         a[72]=new BigInteger("359");
 88         a[73]=new BigInteger("367");
 89         a[74]=new BigInteger("373");
 90         a[75]=new BigInteger("379");
 91         a[76]=new BigInteger("383");
 92         a[77]=new BigInteger("389");
 93         a[78]=new BigInteger("397");
 94         a[79]=new BigInteger("401");
 95         a[80]=new BigInteger("409");
 96         a[81]=new BigInteger("419");
 97         a[82]=new BigInteger("421");
 98         a[83]=new BigInteger("431");
 99         a[84]=new BigInteger("433");
100         a[85]=new BigInteger("439");
101         a[86]=new BigInteger("443");
102         a[87]=new BigInteger("449");
103         a[88]=new BigInteger("457");
104         a[89]=new BigInteger("461");
105         a[90]=new BigInteger("463");
106         a[91]=new BigInteger("467");
107         a[92]=new BigInteger("479");
108         a[93]=new BigInteger("487");
109         a[94]=new BigInteger("491");
110         a[95]=new BigInteger("499");
111         a[96]=new BigInteger("503");
112         a[97]=new BigInteger("509");
113         a[98]=new BigInteger("521");
114         a[99]=new BigInteger("523");
115         a[100]=new BigInteger("541");
116  
117         for(int i=1;i<=T;++i){
118             BigInteger N=cin.nextBigInteger();
119             int flag=N.compareTo(n6);
120             int cnt=0;
121             BigInteger A=new BigInteger("1");
122             BigInteger B=new BigInteger("2");
123             if(flag==1){
124                 BigInteger start=new BigInteger("6");
125                 int P=3;
126                 for(int j=1;j<=10000;j++) {
127                     start=start.multiply(a[P]);
128                     if(start.compareTo(N)==1)
129                         break;
130                     else {
131                         cnt++;
132                         P++;
133                     }
134                 }
135                 int PP=3;
136                 for(int j=1;j<=cnt;j++) {
137                     BigInteger up=a[PP];
138                     BigInteger ttt=a[PP];
139                     ttt=ttt.add(n1);
140                     BigInteger down=ttt;
141                     A=A.multiply(up);
142                     B=B.multiply(down);
143                     PP++;
144                 }
145                 BigInteger gcd=A.gcd(B);
146                 A=A.divide(gcd);
147                 B=B.divide(gcd);
148                 System.out.println(A+"/"+B);
149             }
150             else{
151                 if(N.compareTo(n1)==0)
152                     System.out.println("1/1");
153                 else if(N.compareTo(n2)==0)
154                     System.out.println("2/3");
155                 else if(N.compareTo(n3)==0)
156                     System.out.println("2/3");
157                 else if(N.compareTo(n4)==0)
158                     System.out.println("2/3");
159                 else if(N.compareTo(n5)==0)
160                     System.out.println("2/3");
161                 else if(N.compareTo(n6)==0)
162                     System.out.println("1/2");
163             }
164         }
165     }
166 }

 

转载于:https://www.cnblogs.com/--HPY-7m/p/11620408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值