poj 1730 java+数学方法

原创 2012年03月27日 16:01:30
import java.util.*;
import java.math.*;

public class Main
{
	  static int prime[]= new int[100000];
	  static boolean isprime[]=new boolean[1000001];
	  
	  public static void creatprime()
	  {
		  Arrays.fill(isprime, false);
		  int k=1;
		  prime[0]=2;
		  for(int i=4;i<1000001; i+=2)
			  isprime[i]= true;
		  for(int i=3;i<1000001; i+=2)
		  {
			  if(isprime[i]==false)
			  {
				  prime[k++] = i;
				  for(int j=i+i;j<1000001;j+=i)
					  isprime[j]=true;
			  }
		  }
	  }
	  
	  public static long gcd(long a,long b)
	  {
		  if(b==0)return a;
		  long r = b;
		  while(r!=0)
		  {
			  r = a%b;
			  a = b;
			  b = r;
		  }
		  return a;
		  
	  }
	  
	  public static long solve(long n)
	  {
		  long result = 0;
		  long m = n>0?n:-n;
		  boolean flag = n>0?false:true;
		  n = m;
		  for(long i=0;prime[(int)i]<=(long)Math.sqrt(m*1.0)+1;i++)
		  {
			  long k = 0;
			  if(n%prime[(int)i]==0)
			  {
				  while(n%prime[(int)i]==0)
				  {
					  n/=prime[(int)i];
					  k++;
				  }
				  if(result==0)result =k;
				  else result = Main.gcd(result, k);
			  }
		  }
		  if(n!=1||result==0) result = 1;
		  if(!flag)return result;
		  while(result%2==0)result/=2;
		  return result;
		  
	  }
	  
      public static void main(String[]args)
      {
    	  Scanner in = new Scanner(System.in);
    	  
    	  Main.creatprime();
    	  
    	  while(in.hasNext())
    	  {
    		  long n = in.nextLong();
    		  if(n==0)break;
    		  System.out.println(Main.solve(n));
    	  }
      }
}

POJ 2718(STL全排列)

全排列算法很多。之前不了解。仅仅知道枚举算法。现在要学习dfs。那么全排列可以用递归实现。但是写题过程中发现了C++之中有实现全排列的STL: next_permutation. 结合sort()函...
  • Since_natural_ran
  • Since_natural_ran
  • 2016年11月06日 15:51
  • 168

POJ2718【DFS】

题意: 给你0到9之间的数,然后让你搞成两个数,求一个最小差异值(被组合的数不允许出现前导0) 思路:最小差异那么肯定是有一个整数长n/2,另一个长n-n/2,搜一下就好了。code:#inclu...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2016年06月03日 13:53
  • 242

poj 1730

数论唯一分解定理的应用,要注意负数的情况,想明白这个过程用了两个小时,后来因为一个while写成了if有调试了俩小时,为什么还是这么菜 数论唯一分解定理的应用,要注意负数的情况,想明白这个过程用了两...
  • lishiming030
  • lishiming030
  • 2012年11月11日 18:37
  • 370

《计算机视觉中的数学方法》

2015-11-30         过了好久我才来补充的记录一下学习的感受。我从年初开始准备CV的学习材料的时候就查到了这本书。起初,我看这本书是国内的人写的,感觉其可能没有国外著名大学的教...
  • cloudqiu
  • cloudqiu
  • 2017年02月10日 14:01
  • 1456

poj解题报告——1730

题意:要求出一个完美的平方数,n=b^p,p最大就是完美平方数。         题解:将P从31到1遍历枚举,使用POW函数将他求出来,不过有一点问题就是精度问题,当用POW(125,1/3),直...
  • Lingfu74
  • Lingfu74
  • 2015年07月31日 11:49
  • 230

【BZOJ 3196】[Tyvj 1730]二逼平衡树

题目描述传送门–Portal题目解析题目都说了是平衡树,肯定就是平衡树板题,又因为是区间操作,树套树就行了。(第一次写,就写的线段树套Splay,感觉Splay跑得shi慢。。。一定是蒟蒻自带大常数的...
  • qq_35479641
  • qq_35479641
  • 2017年03月22日 22:19
  • 132

博弈论 HDU 1730 Northcott Game

这道题给的是一个矩阵板,我们撇开这个板,看单独的一行的时候两个人进行博弈的情况。因为根据sg局势的定义,我们只要将所有的局势进行异或就能得到所求的整个棋局的状态。        现在我们看单独的一行...
  • geniusluzh
  • geniusluzh
  • 2011年09月10日 10:59
  • 1444

hdu1730 nim博弈

题意:游戏在一个n行m列(1 ≤ n ≤ 1000且2 ≤ m ≤ 100)的棋盘上进行,每行有一个黑子(黑方)和一个白子(白方)。执黑的一方先行,每次玩家可以移动己方的任何一枚棋子到同一行的任何一个...
  • xiefubao
  • xiefubao
  • 2014年03月02日 23:43
  • 677

数学方法

ceil(…)大于参数的最小整数;floor(…..)小于参数的最大整数round(。。。)四舍五入pow(.a.,..b…)幂 a的b次方...
  • qq_31883431
  • qq_31883431
  • 2016年12月09日 14:16
  • 50

剑指Offer-21:调整数组位置使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。...
  • Koala_Tree
  • Koala_Tree
  • 2018年01月09日 11:03
  • 51
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 1730 java+数学方法
举报原因:
原因补充:

(最多只允许输入30个字)