from itertools import count
a = '''#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
switch (n) {
'''
def is_prime(n):
if n <= 1:
return False
for i in count(2):
if i * i > n:
return True
if n % i == 0:
return False
if __name__ == '__main__':
for i in range(1, 10000):
if is_prime(i):
a += f''' case {i}:
printf("%d是素数", n);
break;
'''
a += ''' default:
printf("%d不是素数", n);
break;
}
return 0;
}'''
with open('test.c', 'w', encoding='gbk') as f:
f.write(a)
print(a)
之前知乎上很火的耗时几个月,手敲print的素数生成器来了