亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在代碼庫上得到錯誤的答案。但我的數學是正確的

在代碼庫上得到錯誤的答案。但我的數學是正確的

桃花長相依 2022-08-17 10:06:39
問題 https://www.codechef.com/problems/MATPH 的鏈接 所以,我在這個問題上停留了幾個小時,我不知道我錯在哪里。我使用Eratosthenes的Sieve來查找素數,并將所有素數保存在哈希映射中。在線法官在測試用例上給了我錯誤的答案。        static void dri(int n) {            long large=0;int r=0,x,count=0,p,count1=0;            x=(int)Math.sqrt(n);            //To understand why I calculated x let's take an example            //let n=530 sqrt(530) is 23 so for all the numbers greater than 23 when             //we square them they will come out to be greater than n             //so now I just have to check the numbers till x because numbers             //greater than x will defiantly fail.I think you get             //what I'm trying to explain            while(r<x) {                r = map.get(++count); // Prime numbers will be fetched from map and stored in r                int exp = (int) (Math.log(n) / Math.log(r));                //To explain this line let n=64 and r=3.Now, exp will be equal to 3                //This result implies that  for r=3 the 3^exp is the //maximum(less than n) value  which I can calculate by having a prime in a power                if (exp != 1) {   //This is just to resolve an error dont mind this line                    if (map.containsValue(exp) == false) {                    //This line implies that when exp is not prime                      //So as I need prime number  next lines of code will calculate the nearest prime to exp                        count1 = exp;                        while (!map.containsValue(--count1)) ;                          exp = count1;                    }                    int temp = (int) Math.pow(r, exp);                    if (large < temp)                        large = temp;                }            }            System.out.println(large);        }
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

對于每個測試用例,在包含最大漂亮數字的一行中輸出≤ N。如果不存在這樣的數字,則打印 ?1。

我相信4是最小的美麗數,因為2是最小的素數,2^ 2等于4。N 只需要≥ 0。所以, ,并且應該全部打印。我試過了。他們沒有。我相信這就是你在CodeChef上失敗的原因。dri(0)dri(1)dri(2)dri(3)?1

我把它留給你自己來了解提到的對你的方法的調用是如何表現的,以及如何處理它。

順便說一句,將素數保存在地圖中有什么意義?列表或排序集不是更合適嗎?


查看完整回答
反對 回復 2022-08-17
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號