C语言 一个数包含的所有质数int main(int argc,char* argv[]){ int n,i,j,f,a[N],m,leap;leap=1;f=0;printf("please input a even\n");scanf("%d",&n);if (n%2!=0){printf("error");}for(i=2;i

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/29 08:27:49
C语言 一个数包含的所有质数int main(int argc,char* argv[]){ int n,i,j,f,a[N],m,leap;leap=1;f=0;printf(
xVRF~ :6 p'W]/i.\ L(& &!cZ7`TxJŌ^taٳΟᩯj(iHohzdj8/:7$B¨@(+h^]/ˈNB\$1?¤?(L*(=#aE$8^[Hz%))#^dZT`{tfR ('„w9* _TGbT?yz.Ki󥋐gj o5 7bGm{8_qzc<86.nsчPEe&!`BIo hy'U՛^4N_ \"5V$lS4wJU&kxmKo~+YߞaoNv \5cRWE[/>abqo-6us:N;!V 7ތ!G : y&hv |_na)NwWӧ,Z3}u}$=hHp=+KR$}:(\)E3.H$fJ`^}r.p-(krp2>>>4GVKԁ ni0 V|WT2*ڄ:2 [w]uT^cG, _Ҍya|vvS4}!V GP@жiRp ҏ_ŐǕq`P39Stk"ٍ*Ko[ :2E>&60Ap7qyNt G91d L?W>j kYhA6.ow医u{Zr m~} {sGE0uMIN`Rݸ]MՏTHF$SUyd%6Bgi_+M25k̟GID:k.>.WAod[ϠZ wߨ8LTiqIU@&yg_

C语言 一个数包含的所有质数int main(int argc,char* argv[]){ int n,i,j,f,a[N],m,leap;leap=1;f=0;printf("please input a even\n");scanf("%d",&n);if (n%2!=0){printf("error");}for(i=2;i
C语言 一个数包含的所有质数
int main(int argc,char* argv[])
{ int n,i,j,f,a[N],m,leap;
leap=1;f=0;
printf("please input a even\n");
scanf("%d",&n);
if (n%2!=0)
{
printf("error");
}
for(i=2;i

C语言 一个数包含的所有质数int main(int argc,char* argv[]){ int n,i,j,f,a[N],m,leap;leap=1;f=0;printf("please input a even\n");scanf("%d",&n);if (n%2!=0){printf("error");}for(i=2;i
找到问题了,下面这个地方:
for(j=0;j

在两个for循环之间,要把leap重新设置为1,否则一旦leap = 0,它就再也不会变成1了,所以后面那个判断if (leap)始终也不再进去。

都不知道你是在求什么。。。按你题目意思是相当于求一个数的所有的质因数
for(i=2;i {
for(j=2;j {
if(i%j==0)
{leap=0;
break;
}
}这部分你在求什么啊。。。你是求n的所有质数啊。这样写,不管你输多少。出来...

全部展开

都不知道你是在求什么。。。按你题目意思是相当于求一个数的所有的质因数
for(i=2;i {
for(j=2;j {
if(i%j==0)
{leap=0;
break;
}
}这部分你在求什么啊。。。你是求n的所有质数啊。这样写,不管你输多少。出来都是2,3。先把思路捋下。。。把我写的一个求质数的你参考下
#include
int main()
{
int n,i;
printf("please input a even\n");
scanf("%d",&n);
for(i=2;i while(n!=i)
{ if(n%i==0)
{
printf("%2d",i);
n=n/i;
}
else
break;
}
printf("%2d",n);
}
希望对你有帮助 #include
main()
{ int i,j,a,sum=0,z;
scanf("%d",&i);
for( a=2;a<=i;a++)
{
for(j=2;j<=sqrt(a);j++) // 因为如果一个数不是素数那么它是两个数的乘积。
//这两个数一定有一个小于等于sqrt(),因此只要找较小的因子就可以了
/* 判断i是不是素数*/
{
if(a%j==0 ) /*这是for (j=2;j<=sqrt(a);j++)的循环体,通过这个循环改变J的值 */
break;
}
if( j>sqrt(a) ) // 如果j>sqrt(a)说明除1和它本身外没有其它数被 i 整除,
{ //所以是素数。在2至sqrt(a)如果有整除的数,执行 if (a%j==0) break;语句,j<=sqrt(a),所以不是素数。
printf("%5d",a);//所有质数
}
}
return 0;
}

收起