سوال: مشکل زمان ؟؟

ساخت وبلاگ

سلام
این یک سوال ساده هست که مال مسابقات کدکاپ بوده.........
سوال بسیار ساده هست ولی وقتی برنامه رو مینویسم بخاطر مشکل زمان نمره کم میارم ..............
محدودیت زمان 0.5 ثانیه هس
لطفا اگر بلدید جواب بدید.........
فایل های سوال و برنامه ای که نوشتم هس..............
شیوه ی صحیح الگوریتمشو میخام.....

tnx

زیرعدد اول
عدد فوق اول عددی است که هر زیر عدد سمت چپ آن اول باشد. برای مثال ۷۳۳۱ فوق اول است. چون
اعداد ۷ و ۷۳ و ۷۳۳ و ۷۳۳۱ اول هستند. اولین عدد فوق اول، عدد ۲ است .
برنامهای بنویسید که با گرفتن عدد nn از ورودی، nn اُمین عدد فوق اول را در خروجی بنویسد .
محدودیتها
عدد خروجی در متغیر صحیح ۴ بایتی قابل ذخیره است .
 زبان C و C++‎‎‎‎‎‎‎‎‎‎‎
o محدودیت زمان: ۵۰۰ میلیثانیه
o محدودیت حافظه: ۱۵۰ مگابایت
 زبان پایتون و جاوا
o محدودیت زمان: ۱ ثانیه
o محدودیت حافظه: ۲۰۰ مگابایت
مثال
نمونه ورودی
5
نمونه خروجی
23


#include <iostream>
#include <math.h>

using namespace std;

int tet(int);
int aval (int,int);
int avalaval(int);

//main

int main() {
int n,a,b;
a=2;
b=0;
cin >> n;
while (b!=n) {
if(aval(a,0)==1 && avalaval(a)==1)
b++;
a++;
}
cout << a-1 ;
}

//tadad argham

int tet(int r){
int o=0;
while (r!=0){
r = r/10;
o++;
}
retu o;
}

//tashkhis

int aval (int r,int k){
int t,c;
c=pow(10,k);
r=(r/c);
if(r==1){
retu 0;
}
for (int i=2;i<=(sqrt(r));i++){
if(r%i==0){
retu 0;
}
}
retu 1;
}

//fooq aval

int avalaval(int r) {
int k,x;
x=0;
k=tet(r);
for (k-1;k>=0;k--){
if(aval(r,k)!=1){
x=1;
break;}
}
if(x==1)
retu 0;
else
retu 1;
}

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 186 تاريخ : دوشنبه 31 خرداد 1395 ساعت: 9:46