首先我用了最朴素的求素数的办法,每个数挨着试,把合数排掉,再用数组记录素数。然后,我用了个for循环嵌套,也就是一个素数乘另一个素数,然后输出第二个素数(因为第一个素数不断去尝试乘第二个素数,第二个素数会从头到尾循环一次,所以第二个素数肯定更大)。然后超时了!!!!!!!我也是刚学c不到一周,求一些更易懂的办法QAQ(做题越来越难了,我是不是应该先去把指针和字符串学完)
#include <stdio.h>
int main ()
{
int n,d=1;
int number [10000];
int s=100000;
scanf ("%d",&n);
for (int i=2;i<s;i++)
{
int p=1;
for(int b=2;b<i;b++)
{
if(i%b==0) {p=0;break;}
}
if(p==1) { number[d]=i;d++;}
}
for(int i=1;i<10000;i++)
{
int o=1;
for (o=1;o<10000;o++)
{
if (number[i]*number[o]==n)
{printf("%d",number[o]);goto out;}
}
}
out: return 0;
}