#1392: RE??溢位或除0????


B88000005 (喔~~!!XD)

學校 : 國立內壢高級中學
編號 : 4538
來源 : [118.167.234.168]
最後登入時間 :
2021-05-12 14:50:32
d131. 00160 - Factors and Factorials -- UVa160 | From: [220.138.36.225] | 發表日期 : 2009-02-15 15:16

我在電腦上執行程式從2~100,

皆沒有出現怪怪的地方阿,

但是為什麼會出現RE??

 

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main()
{
    vector<int> iv(26);
    int o=1;
    iv[0]=2;
    iv[25]=999;
    for(int i=3;i<100;i+=2){
        int g=0;
        for(int j=3;j<=sqrtf(i);j+=2){
            if(i%j==0){
                g=1;
                break;
            }
        }
        if(g==0){
            iv[o]=i;
            o++;
        }
    }
    int k;
    while(cin>>k,k){
        printf("%3d! =",k);
        int q[25]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},I;
        for(int j=2;j<=k;j++){
            int J=j;
            for(int i=0;k>=iv[i];i++){
                while(J%iv[i]==0){
                    q[i]++;
                    J=J/iv[i];
                }
                I=i;
            }
        }
        for(int i=0;i<=I;i++){
            printf("%3d",q[i]);
            if(i==14){
                printf("\n      ");
            }
        }
        printf("\n");
    }
    return 0;
}

 
#1411: Re:RE??溢位或除0????


taichunmin (和風信使)

學校 : 國立彰化高級中學
編號 : 1100
來源 : [36.232.190.238]
最後登入時間 :
2021-03-29 01:45:39
d131. 00160 - Factors and Factorials -- UVa160 | From: [220.131.137.80] | 發表日期 : 2009-02-21 05:13

我在電腦上執行程式從2~100,

皆沒有出現怪怪的地方阿,

但是為什麼會出現RE??

 

#include
#include
#include

using namespace std;

int main()
{
    vector iv(26);
    int o=1;
    iv[0]=2;
    iv[25]=999;
    for(int i=3;i<100;i+=2){
        int g=0;
        for(int j=3;j<=sqrtf(i);j+=2){
            if(i%j==0){
                g=1;
                break;
            }
        }
        if(g==0){
            iv[o]=i;
            o++;
        }
    }
    int k;
    while(cin>>k,k){
        printf("%3d! =",k);
        int q[25]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},I;
        for(int j=2;j<=k;j++){
            int J=j;
            for(int i=0;k>=iv[i];i++){
                while(J%iv[i]==0){
                    q[i]++;
                    J=J/iv[i];
                }
                I=i;
            }
        }
        for(int i=0;i<=I;i++){
            printf("%3d",q[i]);
            if(i==14){
                printf("\n      ");
            }
        }
        printf("\n");
    }
    return 0;
}

無能為力...重傳一次試試吧。
在我的電腦跑也沒問題,就是有一個函式覺得怪怪的

sqrtf()  ?
不是用sqrt()就好了嗎??

 
ZeroJudge Forum