查看: 3020|回復: 18
打印 上一主題 下一主題

[提問] zj a007 程式執行問題

  [複製鏈接]
  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

    跳轉到指定樓層
    樓主
    發表於 2014-8-26 12:49:29 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    每次執行此程式都出現這個
    程式碼如下
    [C++] 純文本查看 復制代碼
    #include<iostream>
    #include<iostream>
    using namespace std;
    int main()
    {
    	int x;
    	while(cin>>x)
    	{
    		for(int e=0;e<=x;e++)
    		{
    			if(x%e != 1)
    			{
    				cout<<"非質數"<<endl;
    			}
    			
    		}
    		cout<<"質數"<<endl;
    		
    	
    	}
    	
    	return 0;
    }
    
    }

    1.png (83.08 KB, 下載次數: 40)

    1.png

    點評

    看不懂你要問什麼??  發表於 2014-8-26 12:55
    回復

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-9-28 12:10
  • 簽到天數: 21 天

    [LV.4]偶爾看看III

    34

    主題

    181

    帖子

    776

    積分

    高級會員

    Rank: 4

    積分
    776

    程式設計達人 - 2014新手達陣

    12#
     樓主| 發表於 2014-8-27 12:57:34 | 只看該作者
    我是用這樣
    [C++] 純文本查看 復制代碼
    #include<iostream>
    using namespace std;
    int main()
    {
    	bool IsPrime[1000001];
        IsPrime[0] = 0;
        IsPrime[1] = 0;
        for(int m=2;m<1000001;m++)
            IsPrime[m] = 1;
            
        for(int m=4;m<1000001;m+=2)
            IsPrime[m] = 0;
        for(int m=3;m<1000001;m+=2)
        {
            if(IsPrime[m])
                for(int n=m*2;n<1000001;n+=m)
                    IsPrime[n] = 0;
        }
        
        int a,ans;
        while(cin>>a)
        {
            if(IsPrime[a] == 1)
            {
            	cout<<"質數"<<endl; 
            }
            else
            {
            	cout<<"非質數"<<endl;
            }
        }
    	return 0;
    }
    

    點評

    這題範圍不是到2^31-1嗎  發表於 2014-8-27 13:25
    林宇翔
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-8-14 16:02
  • 簽到天數: 1 天

    [LV.1]初來乍到

    12

    主題

    138

    帖子

    863

    積分

    高級會員

    Rank: 4

    積分
    863

    台南一中資訊社新手達陣

    11#
    發表於 2014-8-26 22:01:50 | 只看該作者
    這題直接做也可以AC吧
    [C++] 純文本查看 復制代碼
    #include <stdio.h>
    int p[7000];
    int pn=0;
    void init()
    {
    	p[pn++]=2;
    	p[pn++]=3;
    	for(int i=5;i<=65536;i+=2)
    	{
    		bool tf=true;
    		for(int j=0;j<pn&&p[j]*p[j]<=i;j++)
    		{
    			if(i%p[j]==0)
    			{
    				tf=false;
    				break;
    			}
    		}
    		if(tf)p[pn++]=i;
    	}
    }
    int main()
    {
    	init();
    	int N;
    	while(~scanf("%d",&N))
    	{
    		for(int i=0;i<pn&&p[i]*p[i]<=N;i++)
    		{
    			if(N%p[i]==0)
    			{
    				printf("非質數\n");
    				goto end;
    			}
    		}
    		printf("質數\n");
    		end:;
    	}
    	return 0;
    }
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    10#
    發表於 2014-8-26 21:31:56 | 只看該作者
    AC 這一題的方法

    1.雞尾酒方法(我亂取的)
    2.範圍內100%正確的隨機演算法

    點評

    Miller-Rabin  發表於 2014-8-26 21:33
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-6-17 11:50
  • 簽到天數: 177 天

    [LV.7]常住居民III

    15

    主題

    315

    帖子

    1437

    積分

    金牌會員

    Rank: 6Rank: 6

    積分
    1437

    新手達陣台南一中資訊社

    9#
    發表於 2014-8-26 21:20:47 | 只看該作者
    Brad 發表於 2014-8-26 20:40
    我幫你試過了
    這種方式會 TLE
    e

    判斷2,3,6n+1,6n+5,e<=sqrt(x)也一樣
    就是因為這樣這題到現在我還沒有AC.
    目標:Taiwan Oranges-Integraled 2016 (TOI'16)台灣積分橘子。
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-11-18 21:47
  • 簽到天數: 9 天

    [LV.3]偶爾看看II

    1

    主題

    40

    帖子

    343

    積分

    好好學生

    Rank: 3Rank: 3

    積分
    343

    程式設計達人 - 2014新手達陣台南一中資訊社

    8#
    發表於 2014-8-26 20:40:14 | 只看該作者
    本帖最後由 Brad 於 2014-8-26 20:42 編輯

    我幫你試過了
    這種方式會 TLE
    e<=sqrt(x) 也一樣
    先判斷x是否為2的倍數,若非則e再把小於等於sqrt(x)的奇數都跑一次也一樣

    點評

    難怪這題這麼難......  發表於 2014-8-26 21:10
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    7#
    發表於 2014-8-26 19:34:35 來自手機 | 只看該作者
    我記得營隊的時後有叫大家先不要寫a007

    點評

    又~絕對有  發表於 2014-8-26 19:55
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-8-14 16:02
  • 簽到天數: 1 天

    [LV.1]初來乍到

    12

    主題

    138

    帖子

    863

    積分

    高級會員

    Rank: 4

    積分
    863

    台南一中資訊社新手達陣

    6#
    發表於 2014-8-26 19:16:00 | 只看該作者
    這已經不是TLE的問題吧
    會先RE吧
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-6-17 11:50
  • 簽到天數: 177 天

    [LV.7]常住居民III

    15

    主題

    315

    帖子

    1437

    積分

    金牌會員

    Rank: 6Rank: 6

    積分
    1437

    新手達陣台南一中資訊社

    5#
    發表於 2014-8-26 19:14:03 | 只看該作者
    本帖最後由 visitorIKC 於 2014-8-26 19:16 編輯

    你的演算法有接近100%的機率得到可愛的TLE...(ZJ a007)

    點評

    神回~  發表於 2014-8-26 19:56
    首先會:RE,再過來會:TLE,最後還會拿到:WA  發表於 2014-8-26 19:28
    目標:Taiwan Oranges-Integraled 2016 (TOI'16)台灣積分橘子。
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-8-22 22:33
  • 簽到天數: 120 天

    [LV.7]常住居民III

    70

    主題

    386

    帖子

    2247

    積分

    金牌會員

    Rank: 6Rank: 6

    積分
    2247

    程式設計達人 - 2014新手達陣

    4#
    發表於 2014-8-26 18:47:18 | 只看該作者
    break呢? 大大?
    回復 支持 反對

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表