卡bug正确通过的代码
C++ 搞不定,换成python玩玩
def main():
flag = 1
prime = []
for i in range(5, 50, 6):
for j in range(2, i):
if i % j == 0:
break
else:
prime.append(i)
# for j in range(2, i):
# a = prime[0] + 6
for i in range(0,5):
print(prime[i], end=" ")
if __name__ == '__main__':
main()
心路历程:
提示:下边的代码是垃圾,千万别看
思路: 从1开始+6,当相邻的五个数中出现不是质数的时候就停止,然后指向和1最近的下一个质数的位置,然后继续+6,重复上述,依次类推,直到找到一组满足要求的数组。然后把它们输出
用到的工具:
数组的输入,清零,与输出。
还需要一个变量,记录到了数组中的第几个数
想到用while判断数据是否够了五个,但有个bug是他只能进行一次
所以需要当他不满足条件时,进行下一轮循环, while
怎么找到离1最近的那个质数
开始的变量怎么存储
第一版代码
#include
using namespace std;
bool flag;
int num=0;
int temp=1;
vector a;
void test(){
for(int i = temp; ;i+6){
for(int j=2;j
思路二:
核心不变,上面的代码还可以更精简下,始终有一个值指向1,3,5这种
问:怎么能把代码写的更精简
超内存
#include
using namespace std;
void test(int temp=2)
{
int num=0;
vector arr;
bool flag = 1;
//从第一个质数开始,+6,每一个数挨个判定他是不是质数,且相差六
while(num<5){
for(int i=temp;i<30;i+6){
for(int j=2;j arr;
int num = 0;
bool flag =1;
if(num==5 and flag == 1){
for(int i=0;i<5;i++){
cout << arr[i];
}
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)