黑马程序员技术交流社区
标题:
编程题求教大神出手...
[打印本页]
作者:
Ak-47
时间:
2016-3-23 23:39
标题:
编程题求教大神出手...
分析以下需求,并用代码实现:
(1)打印1-100之间的所有素数及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
(4)如:2 3 5 7 11
有没有大神,搞不懂这个素数是什么意思啊,
作者:
Gqg
时间:
2016-3-23 23:43
for循环嵌套,采用计数器思想,
作者:
Ak-47
时间:
2016-3-24 00:02
师兄能详细点吗?
作者:
sdx_1234
时间:
2016-3-24 00:10
class Prog2 {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 100; i++ ) {
if (isPrime(i)) {
count++;
System.out.print(i + " ");
if (count % 5 == 0) {
System.out.println();
}
}
}
System.out.println("count =" + count);
}
/*
判断一个整数是不是一个素数.
*/
public static boolean isPrime(int a) {
boolean flag =true ;
if (a != 1) {
for (int i = 2;i < a ; i++ ) {
if ((a % i )== 0) {
flag = false;
break;
}else {
flag = true;
}
}
}else { flag = false;}
return flag;
}
}
复制代码
基础班做作业时写的 没有注释......
作者:
Freewings
时间:
2016-3-24 00:16
如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数 题目不就说咯
作者:
Ak-47
时间:
2016-3-24 00:20
大神,你怎么这么厉害啊,我还在学基础啊,表示压力三大,不知道能上就业班不啊
作者:
skxy2016
时间:
2016-3-25 10:05
这道题在老师发的周末作业那里看过,很多人提交了
作者:
潘耿威
时间:
2016-3-25 13:45
素数,就是 除本身和1外没有其他被除数,比如 7 他素数是 1 , 7 这就是素数
作者:
大叔的青葱
时间:
2016-3-25 21:47
for循环,挑出只能被1和他本身整除的数
作者:
dbymzss
时间:
2016-3-25 23:28
素数就是质数;只能被1和他本身整除{主要思路是:用这个数取模比它小的数字看是否为零;如果是就说明不是素数,比如{n 就是保证:n%(n-1)!=0;n%(n-2)!=0;n%(n-3)!=0;......n%(n-(n-2))!=0都为真的话就是素数,否则就不是;;;每行五个的话,可以通过计数器解决。。。}}
class Num_2 {
public static void main(String[] args) {
int count=0;
int count5=0;
int countTemp=0;
for (int x=2;x<=100 ;x++ ) {
int sum = x;
int num = x-1;
while (num!=1) {
if(sum%num == 0){
countTemp++;
}
num--;
}
if(countTemp== 0){
System.out.print(x+"\t");
count++;
count5++;
if(count5 == 5){
System.out.println();
count5=0;
}
}
else
{
countTemp=0;
}
}
System.out.println("素数一共"+count+"个");
}
}
作者:
Ak-47
时间:
2016-3-26 01:36
大神收下我的膝盖吧
作者:
就是我
时间:
2016-3-26 16:20
素数:就是能被1和它本身整除的数,采用嵌套for循环,再加一个5的整数倍标志位,足以完成此题
作者:
lyoivneg
时间:
2016-3-26 19:33
给的黑马币太少了 给加点
作者:
luomoss
时间:
2016-3-26 22:38
如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
两个条件,第一是大于1的自然数,那就是大于整数(自然数定义为非负整数)
第二就是除了1和自身,不能被其他数整数。比如5只能除以1或者5才能整除,就是素数。比如6除了1跟6,还能整除2或者3,那么6就不是
作者:
lennycxy
时间:
2016-3-26 23:23
用for循环呀,遍历
作者:
FutureQing
时间:
2016-3-27 00:22
class BS {
public static void main(String[] args) {
int count = 0;
for(int i=2;i<=100;i++){
for(int j=2;j<=i;j++){
if(i%j==0&&i!=j){
break;
}else if(i%j==0&&i==j){
System.out.print(i+"\t");
count++;
if (count==5) {
System.out.println();
count=0;
}
}
}
}
}
}
作者:
Lingxin
时间:
2016-3-27 22:30
public class Demo {
public static void main(String[] args) {
//1.定义计数器
int count = 0;
//2.利用for循环遍历
for(int i = 2;i<100;i++) {
int temp = (int) Math.sqrt(i);
int j = 2;
for(;j<=temp;j++) {
if(i%j==0){
break;
}
}
//3.j>temp说明是素数,然后进行统计打印
if(j>temp) {
count++;
System.out.print(i+" ");
if(count%5==0) {
System.out.println();
}
}
}
System.out.println();
System.out.println("1-100的素数个数为:"+count);
}
}
复制代码
以上代码,试着看看吧
作者:
Ak-47
时间:
2016-3-28 01:02
楼上的都是大神啊
作者:
菊花爆满山
时间:
2016-3-28 12:55
素数就是质数,只能被1和自身整除的数,例如3、5、7、11、13等
作者:
犹豫的烤肉拌饭
时间:
2016-3-29 00:02
本帖最后由 犹豫的烤肉拌饭 于 2016-3-29 00:04 编辑
class Demo {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i < 100; i++) {
if (suShu(i)) {
count++;
System.out.print(i + " ");
if (count % 5 == 0) {
System.out.println("");
}
}
}
}
public static boolean suShu(int i) {
if (i == 1) {
return true;
}
int count = 0;
for (int j = 2; j <= i; j++) {
if (i % j == 0) {
count++;
}
if (count >= 2) {
return false;
}
}
if (count == 1) {
return true;
}
return false;
}
}
复制代码
作者:
晴苑
时间:
2016-3-29 22:55
class Test_1 {
public static void main(String[] args) {
int x = 0; //定义素数个数
for (int i = 1;i <= 100 ;i ++ ) {
int a = 0; //计数器
for (int j = 1;j <= i ;j++ ) {
if (i % j == 0) {
a++;
}
}
if (a < 3) {
System.out.print(i + " ");
x++;
if (x % 5 == 0) {
System.out.println();
}
}
}
}
}
作者:
Ak-47
时间:
2016-3-30 00:24
大神这么牛擦,谢谢了,请收下我的膝盖
作者:
122754304
时间:
2016-4-2 19:50
for循环里面加if判断
作者:
15614014298
时间:
2016-4-7 22:22
素数又称质数,有无限个。除了1和它本身以外不再有其他的除数整除.
作者:
UKnowINeedYou
时间:
2016-4-8 18:36
高中数学里有呀 ,素数是除了1和本身,不能被其他的任何整数整除,所以就很简单了嘛
//#include "math.h
#include "stdio.h"
int main(void){
int i,j,k;
printf("Prime Numbers between 1 to 100 are as follows:\n2 ");
for(i=3;i<100;i+=2){//除了2只考查奇数,避免穷举
for(j=3;(k=j*j)<=i;j+=2)//只用奇数去除,且j*j<=i限制循环以提高时效
if(i%j==0) break;
if(k>i)
printf("%d ",i);
}
printf("\n");
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2