求解100以内的所有素数
输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)。
list=[];
for i in (2,100):
for j in (2,i):
if i%j == 0:
break
else:
list.append(i)
print(" ".join(str(i) for i in list))
不知道哪里错了,求指点!!
range(2, 100)
range(2, i)
另外还有问题&修改后如下:
list=[];
for i in range(2,100):
isprime = True
for j in range(2,i):
if i%j == 0:
isprime = False
#else:
if isprime:
list.append(i)
print(" ".join(str(i) for i in list))
输出结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
list = []
for i in range(2, 100):
isPr = True
for j in range(2, i):
if i%j==0:
isPr = False
break
if isPr:
list.append(i)
print(" ".join([str(i) for i in list]))
不知道你这个问题是否已经解决, 如果还没有解决的话:package com.Mxhlin.demo;
import java.util.Scanner;
/**
* @author Mxhlin
* @Email fuhua277@163.com
* @Date 2022/09/05/14:05
* @Version
* @Description 九九乘法表
*/
public class ForDemo04 {
public static void main(String[] args) {
for (int i = 1; i <=9; i++) {
for (int b = 1 ;b <=i;b++){
System.out.printf("%d * %d = %2d ",i,b,i*b);
}
System.out.println();
}
}
}
问题解答:
素数:只能被1和它本身整除的数
解决该问题可以采用试除法,即从2到该数的平方根依次尝试是否能够整除该数,若能整除则该数不是素数。
具体实现如下:
#include <stdio.h>
int main() {
int num, i, j;
for(i=2; i<100; i++) {
num = 1;
for(j=2; j*j<=i; j++) {
if(i%j == 0) {
num = 0;
break;
}
}
if(num == 1) {
printf("%d ", i);
}
}
return 0;
}
将每个素数依次输出即可。
对于段落0和段落1,与求解素数问题无关,不作答。