可以负责任的说楼上的方法是错误的,会判断失误,比如121就会被当成素数,正确的算法是将这个数除以从2到这个数开二次方根,如果都除不尽才是素数。给你个java语言算法,忘了c++语法怎么写了。
int suShuRange(int m,int n){
for(int i=m;i<=n;i++){
if(judge(i))System.out.print("i ");//输出i
}
}
boolean judge(int n){//判断n是否为素数
for(int i=2;i
return true;
}
c语言的,我就把一楼改了,请试试吧
#include
using namespace std;
int count;
void panduan(int a,int b)
{
for(int i=a;i<=b;i++)
{
for(int j=2;j
cout< }
}
void main()
{
int m,n;
cin<
cout<
JAVA 实现,输入的数字之间要用空白隔开.如果输入的第一个数字比第二个小,譬如200 100程序提示小了。会自动调整比较100, 200
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.print("Please input two digits(separate with space): ");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] nums = input.split("\\s+");
int min = Integer.parseInt(nums[0].trim());
int max = Integer.parseInt(nums[1].trim());
if(min > max){
int temp = min;
min = max;
max = min;
System.out.println("输入的第一个数字比第2个大,出错!程序将比较" + max + "和" + min + “之间的质数");
}
int primeNumCount = 0;
for(int i = min; i <= max; i++){
if(validatePrimeNum(i) == 1){
System.out.print(i + " ");
primeNumCount++;
}
}
System.out.println("\nTotal " + primeNumCount + " prime number found between " + min + " and " + max);
}
public static int validatePrimeNum(int num){
for(int i = 2; i <= Math.sqrt(num); i++){
if(num % i == 0){
return 0;
}
}
return 1;
}
}
--------------------
Please input two digits(separate with space): 100 200
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
Total 21 prime number found between 100 and 200
#include
int count;
void panduan(int a,int b)
{
for(int i=0;i
if(((a%2)!=0)&&((a%3)!=0)&&((a%5)!=0))
{
printf(%d,a," ");
count++;
}
}
void main()
{
int m,n;
scanf(&m,%d,&n,%d);
panduan(m,n);
printf(\n,%d,count);
}
C程序很久没有编过来,估计有不少错误,不过思路应该是可行的,下面再给一个C++程序,其实与C差不多,只是输入输出简单些,所以本人觉得编程相对要简单些。
#include
using namespace std;
int count;
void panduan(int a,int b)
{
for(a<=b)
{
if(((a%2)!=0)&&((a%3)!=0)&&((a%5)!=0))
{
cout< count++;
}
a++;
}
void main()
{
int m,n;
cin<
cout<
import java.util.*;
public class Test{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int value=0;
int values=0;
value = sc.nextInt();
values = sc.nextInt();
new Test().check(value,values);
}
public void check(int i,int j){
boolean boo = false;
if(i>j){
System.out.println("你输入的数字不符合");
}else{
for(int k=i;k
if(k%h==0){
boo = true;
}
}
if(boo == false){
System.out.print(k+" ");
}else{
boo = false;
}
}
}
}
}
void sushu( int x )
{
if(x<2)
return 0;
if(x=2)
return 1;
int i,loop=1;
for(i=2;i
if(x%i==0)
{
loop=0;
continue;
}
}
return loop;
}
调用就可以了。这是一个判断函数。