编写C语言程序,求100~200之间所有素数。
1、首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。 先找出来100到200的所有整数,都为i 用i去对除了1和它本身以外的数求余。
2、素数就是只能被1和本身整除的数,先定义一个函数用于判断一个数是否是素数,在从100到200依次循环判断,如果是素数则输出。
3、思路:先定义一个函数isp用来判断一个数是否是素数,所谓素数是除了1和自身没有其他的因数,所以从2到该数减一,判断其是否可以整除该数,如果可以该数就不是素数,否则该数就是素数。最后从100到200依次判断并输出素数。
4、素数是只有1和自身才能整除的数。调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出。
5、对100到200之间的数,逐一判断是否为素数,如果是则输出即可。判断素数方法很多,以数学方法判断为例,代码如下:include stdio.hint is_prime(int n)//判断n是否为素数。{ int i; for(i = 2; i n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。
6、首先定义一个素数判断函数fun,int fun(int x),在里面如果x能被2整除,return 0,然后进入一个以3为初值,步长为2,条件测试表达式为sqrt(x)的for循环,如果x能被i(循环变量)整除,则也是return 0,最后,添加返回语句return 1。
判断101-200之间有多少个素数,并输出所有素数
所以,只要从2~√m判断,就能确定m是否素数了。
首先,质数 又称素数,指在大于1的自然数中,除了1和它本身以外不再有其他因数。
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
大循环是要测试是不是质数的那个数字101-200,x表示 y是小于x的(可能)约数,对于每一个x,这个y都从2开始(因为1一定是x的约数),一旦发现这个y是x的约数,就跳出了y的循环,去看下一个x了。因为比如现在x是102,y是2,x被y整除,x肯定不是质数了,然后break;以后y也不用再加了。
大循环是要测试是不是质数的那个数字101-200, x表示 y是小于x的(可能)约数,对于每一个x, 这个y都从2开始(因为1一定是x的约数),一旦发现这个y是x的约数,就跳出了y的循环,去看下一个x了。因为比如现在x是102, y是2,x被y整除,x肯定不是质数了,然后break;以后y也不用再加了。
JAVA求101-200之间的素数
判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
对于每一个奇数k,从2到k-1,如果在2到k-1之间找到能被k整除的数字,也就是约数,自然不是素数了。
两种方法都是对的,但是第二个程序写得有点问题:for(int j=2;jMath.sqrt(i);j++)应该写成 for(int j=2;j = Math.sqrt(i);j++)不然结果中会有121和169两个平方数,x变量没有进行计数累加,所以这里的输出也不对,输出语句中的“/n”应该改为“\n”,才表示换行。
public class TestSu { public static void main(String[] args){ loop:for(int i=101;i=200;i++){ int k=i/2;for(int j=2;jk;j++){ if(i%j==0){ continue loop;} } System.out.println(i+是素数);} } } loop:是外层循环的标签。
你好,你如果将boolean Y=true放在第一个位置,那么后面一旦被这个if语句 if(i%j==0){ Y=false;break;} 设置为了false后,Y就会一直是false,所以就不能再输出素数了。但是你将它放在for循环中,每次循环时这句话就会把Y设为true,后面的语句再判断是否要将Y设为false,这样当然就不会错了。