我在電腦上執行程式從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;
}
我在電腦上執行程式從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()就好了嗎??