讀入scanf,%d和%lld問題

在做一道題目時,用不同的格式化字符讀入在不同的OJ上會有不同的結果。

poj_2689/ uva_10140 Prime Distance

poj題目鏈接:http://poj.org/problem?id=2689

題目:

Description

The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theoreticians for thousands of years is the question of primality. A prime number is a number that is has no proper factors (it is only evenly divisible by 1 and itself). The first prime numbers are 2,3,5,7 but they quickly become less frequent. One of the interesting questions is how dense they are in various ranges. Adjacent primes are two numbers that are both primes, but there are no other prime numbers between the adjacent primes. For example, 2,3 are the only adjacent primes that are also adjacent numbers.

Your program is given 2 numbers: L and U (1<=L< U<=2,147,483,647), and you are to find the two adjacent primes C1 and C2 (L<=C1< C2<=U) that are closest (i.e. C2-C1 is the minimum). If there are other pairs that are the same distance apart, use the first pair. You are also to find the two adjacent primes D1 and D2 (L<=D1< D2<=U) where D1 and D2 are as distant from each other as possible (again choosing the first pair if there is a tie).

Input

Each line of input will contain two positive integers, L and U, with L < U. The difference between L and U will not exceed 1,000,000.

Output

For each L and U, the output will either be the statement that there are no adjacent primes (because there are less than two primes between the two given numbers) or a line giving the two pairs of adjacent primes.

Sample Input

2 17

14 17

Sample Output

2,3 are closest, 7,11 are most distant.

There are no adjacent primes.

代碼:

#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
#define range 50000
#define range2 1000010
#define INF 0xFFFFFFF
typedef long long LL;
int prime[range],is_prime[range];
int a[range2],prime2[range2];
int num_p;
void produce_prime()
{
    memset(is_prime,0,sizeof(is_prime));
    num_p=0;
    for(int i=2;i<range;i++)
    {
        if(is_prime[i]==0)
        {
            int j=i+i;
            prime[num_p++]=i;
            while(j<range)
            {
                is_prime[j]=1;
                j+=i;
            }
        }
    }
}
int main()
{
//  freopen("in.txt","r",stdin);
    LL left,r;
    produce_prime();
    ‘‘‘
**//    while(scanf("%d%d",&left,&r)==2)//這樣寫在poj上會TLE,在uva上能AC
    while(scanf("%lld%lld",&left,&r)==2)//這樣寫在poj和uva上都能AC**
    ‘‘‘
    {
        memset(a,0,sizeof(a));
        if(left==1)
        {
            a[0]=1;
        }
        for(int i=0;i<num_p && prime[i]*prime[i]<=r;i++)
        {
            int k=(int)left/prime[i];
            LL m=k*prime[i];
            while(m<left || k<=1)
                {
                 m+=(LL)prime[i];
                 k++;
                }
            for(LL j=m;j<=r;j+=prime[i])
            {
                if(j>=left)
                    a[j-left]=1;
            }
        }
        int minn=INF,maxx=-1;
        int minflag=-1,minf=-1,minlast=-1,maxf=-1,maxlast=-1,pre=-1;
        for(LL i=left;i<=r;i++)
        {
            if(a[i-left]==0)
            {
                if(pre==-1)
                    {
                     pre=i;
                    }
                    else
                    {
                        if(i-pre<minn)
                        {
                            minf=pre; minlast=i;
                            minn=i-pre;
                        }
                        if(i-pre>maxx)
                        {
                            maxf=pre; maxlast=i;
                            maxx=i-pre;
                        }
                        pre=i;
                    }
                //last=i;
            }
        }
        if(minf==-1)
            printf("There are no adjacent primes.\n");
            else
                printf("%d,%d are closest, %d,%d are most distant.\n",minf,minlast,maxf,maxlast);
    }
    return 0;
}
时间: 2024-12-23 23:09:13

讀入scanf,%d和%lld問題的相关文章

何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題

在自己的主機上透過 Visual Studio 2013 與 IISExpress 開發與測試都還正常,但只要部署到測試機或正式機,就是沒辦法順利執行,卡關許久之後找我協助.我發現錯誤訊息確實很「一般」,訊息是:「 無法載入檔案或組件 'LinqToExcel' 或其相依性的其中之一. 試圖載入格式錯誤的程式. 」或是英文版的「 Could not load file or assembly 'LinqToExcel' or one of its dependencies. An attempt

BT觀念分享和常見問題彙整

一. TCP/IP基本觀念 1. IP : 每台在TCP/IP網路上的電腦必須具備的一個代表號或一個地址.IP又分為private IP(192.168.x.x /10.x.x.x /172.16.x.x~172.31.x.x)和public IP(除了少數特殊IP,只要不是private IP就是public IP). 2. port : port可視為TCP/IP網路中電腦提供的某種服務的門牌號碼,號碼(port的數值)是多少不重要,號碼代表的服務才重要.例如: port80代表web的服務

java路徑問題。

本文只是基於FileOuutPut和this.getClass().getResourceAsSream()做的測試. package com.eblly.xml; import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.dom4j.Document;import org.do

Unity strip engine code 遇到執行不能之問題與解決

遊戲發布在 WebGL 平台發現檔案還是太大,因此在 IL2CPP 的環境下,開啟 Strip engine code 編譯功能,嘗試看看能不能減少一些檔案容量. 但由於我們另外有載入 Scene stream assetbundles 的機制,因此遇到開啟 Strip engine code 後,無法正常執行的情形. 經過 Kelvin Lo 技術支援以及時間測試後,終究能夠正常執行,留下整件事情的經過.技術問題以及相關解法支援等等資料. 測試環境 Unity5.5.1f1,Windows 1

[亂數] &lt;細說&gt; C/C++ 亂數基本使用與常見問題

陸陸續續寫了 EA  一.二年,以前亂數引導文回頭看時才發現,怎麼有這麼多細節的錯誤.沒系統. 這篇文章主要引導初學者使用亂數,同時附上常被翻出來討論的議題,C/C++適用,唯以 C 語言撰之. 也由於是引導初學者,所以在某些用詞上會較不正確, 像 compiler.IDE 會故意混為一談. 另外亂數原理也全都跳過 < 重點是亂數的產生原理也不只一種 >. 另本文附程式碼,不附執行結果,有興趣自己跑一遍. 最後請注意本文在區間表達裡,開區間與閉區間 括號的使用,也就是, [a, b]  ,  

大數據時代的不平等問題

一家國際著名保險公司與提供大數據的公司合作,推出一款針對不同駕車群體的保險計劃.這一計劃的要點是,由大數據公司對不同潛在客戶的駕車習慣進行分析,如果數據表明某位客戶是白天上班,路也近,而且所經過的地帶是安全路線,客戶駕車習慣良好,沒有特別情緒化舉動,那麼,給其所賣的保險可以打折:反之,如果數據表明某位客戶是上夜班,上班地點也遠,所經過的路線有風險,客戶駕車習慣也不好,常無法控制自己的行為,那麼,保險公司將提高其所繳納保費額度.從商業角度看,保險公司這樣做,是為了更精確地細分市場,賺取更高利潤,這

搜索提示時jquery的focusout和click事件沖突問題完美解决

      在主流的搜索引擎上搜索時,輸入內容,往往會彈出智能提示.輸入框为input,智能提示區域为suggest.接下來一般有兩種操作:        1.選擇某一提示,則把內容复制到input中,自動關閉suggest:        2.點擊網頁其他地方,自動關閉suggest.          實現第一個可以用click事件,在suggest中增加鼠標click事件,在處理中將點擊的內容寫到input中,然後關閉suggest.單獨測試無問題:        實現第二個可以在inpu

[three.js] 解決貼圖無法重複的問題 Solving with Texture RepeatWrapping Fail Issue

有些东西,你想找的时侯,怎么也找不到, 而有些东西,不经意间,随处可见: 本以为这是生活中常见的事情, 然而在浩瀚的互联大海中,也是如此. 平时的积累是为了一时之需, 几分钟的投入, 积累起来, 也会成为汪洋大海, 载起一帆小舟, 不至搁浅. 平时注一入滴水, 需时拥有太平洋, 广告词很好, 然而它真正的意义又有几人能真正领悟呢! 附一个不错的 threejs 开源链接: https://github.com/rmx/threejs-collada [three.js] 解決貼圖無法重複的問題

問題排查:DataReader 的詭異狀況

這個問題很詭異,同樣的程式碼片段而且還不止一個地方在用原本都好好的,今天突然給我出狀況? 具體情況是:DataReader 的 Read() 明明已經返回 True,但居然沒有進入相應的判斷式 程式碼如下: using(IDataReader dr = db.ExecuteReader(Cmd)) { WebLogs.Debug("接口驗證前置作業,是否有資料", dr.Read().ToString()); if(dr.Read()) { vxci.ID = dr["ID&