답변 6
0
안녕하세요^^
b 배열의 크기를 1000정도의 크기로 잡고 reverse와 isPrime 함수를 수정했습니다. 확인해 보세요.
#include <iostream>
using namespace std;
int reverse(int x){
int b[1001]={0};
int r=0;
int cnt=0;
int c=1;
while(x>0){
b[cnt]=x%10;
x=x/10;
cnt++;
}
for(int i=1;i<=cnt;i++){
r+=b[cnt-i]*c;
c*=10;
}
return r;
}
bool isprime(int x){
int i,j,flag;
for(i=2;i<x;i++){
if(x % i == 0) return false;
}
return true;
}
int main(){
freopen("input.txt","rt",stdin);
int i,n;
int a[101]={0};
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
a[i]=reverse(a[i]);
}
for(i=0;i<n;i++){
if(isprime(a[i])==true){
cout<<a[i] << endl;
}
}
return 0;
}
0
0
#include <iostream>
using namespace std;
int reverse(int x){
int b[1000001]={0};
int r=0;
int cnt=0;
int c=1;
while(x>0){
b[cnt]=x%10;
x=x/10;
cnt++;
}
for(int i=0;i<=cnt;i++){
r+=b[cnt-i]*c;
c*=10;
}
return r;
}
bool isprime(int x){
int i,j,flag;
for(i=2;i<x;i++){
flag=1;
for(j=2;j*j<=i;j++){
flag=0;
break;
return false;
}
return true;
}
}
int main(){
freopen("input.txt","rt",stdin);
int i,n;
int a[101]={0};
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
a[i]=reverse(a[i]);
}
for(i=0;i<n;i++){
if(isprime(a[i])==true){
cout<<a[i];
}
}
return 0;
}
0
0
0
풀코드를 그림형태말고 복사 붙여넣기 해서 텍스트 형태로 올려주세요.