编写一个程序,输出3~100之间的全部素数。

不要复制的

如果您想用 Python 编写一个程序,输出3~100之间的全部素数,可以参考以下代码:
# 定义一个函数,判断一个数是否为素数def is_prime(n): # 素数必须大于1
if n <= 1: return False
# 从2到n的平方根遍历所有可能的因数
for i in range(2, int(n**0.5) + 1): # 如果有能整除n的因数,说明n不是素数
if n % i == 0: return False
# 否则,n是素数
return True# 创建一个空列表,用来存储找到的素数primes = []# 遍历3到100之间的所有整数for num in range(3, 101): # 如果是素数,就添加到列表中
if is_prime(num):
primes.append(num)# 输出列表中的所有元素,以逗号分隔print(*primes, sep=",")
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-23
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,count=0,prime;
for(i=3;i<=100;i++)
{
prime=1;
k=(int)sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)
prime=0;
if(prime)
{
printf("%6d",i);
count++;
if(count%5==0)
printf("\n");
}
}
printf("\n");
return 0;
}追问

完全看不懂。。。k=(int)sqrt(i);这句什么意思?还有这句if(prime)

追答

k=(int)sqrt(i)(i)表示先对i开二次方,但是呢,sqrt的返回值是double型,所以在将结果赋值给k时,在前面加上(int)进行强制类型转换,这样就可以对int型的k赋值了。至于if(prime)是说prime是否非0(就是判断真假),在这个程序中prime是1就执行,是0就不执行if语句。

本回答被提问者采纳
第2个回答  2013-04-05
1)
cout<<"3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97"<<endl;
2) int prime[24]={3,5, 7,11, 13, 17 ,19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67,71, 73,79, 83 89, 97};
copy(prime,prime+24,ostream_itierator<int>(cout));
3)
int c=1,i;
int prime[24]={3};

for(i=5;i<100;i+=2)
{
for(j=0;j<c;j++)
if( i mod prime[j] !=0){ prime[c++]=i;break;}
}
copy(prime,prime+c,ostream_itierator<int>(cout));本回答被网友采纳
第3个回答  2013-04-05
C++,供参考……
#include "stdafx.h"
#include "math.h"//
#include <iostream>//.h
using namespace std;//
void main(void){
cout << "2 ";
for(int i=3;i<101;i+=2){
int n=(int)sqrt(i)+1;
for(int j=3;j<n;j+=2)
if(!(i%j)) break;
if(j>=n) cout << i << ' ';
}
cout << endl;
}
第4个回答  2013-04-05
#include<iostream>
#include<cmath>
using namespace std;
void main(){
int i,n;
for(n=3;n<=100;n=n+2){
for(i=2;i<=sqrt(n*1.0);i++){
if(n%i==0)
break;
}
if(n%i!=0)
cout<<n<<ends;
}
cout<<endl;
}
相似回答