工程Euler3在c中,代码处理时间太长,无法处理大量数据?
给出答案要花很长时间,似乎只是在处理答案?我见过类似的问题,但请告诉我这个代码有什么问题工程Euler3在c中,代码处理时间太长,无法处理大量数据?,c,unsigned-long-long-int,C,Unsigned Long Long Int,给出答案要花很长时间,似乎只是在处理答案?我见过类似的问题,但请告诉我这个代码有什么问题 #include<stdio.h> main() { int flag=0; unsigned long long int j,z,ino,i; scanf("%llu",&ino); for(i=2;i<=ino/2;i++) { flag=0; if(ino%i==0) {
#include<stdio.h>
main()
{
int flag=0;
unsigned long long int j,z,ino,i;
scanf("%llu",&ino);
for(i=2;i<=ino/2;i++)
{
flag=0;
if(ino%i==0)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=1;
}
}
if(flag==0)
{
z=i;
}
}
}
printf("%llu",z);
}
#包括
main()
{
int标志=0;
无符号长整型j,z,ino,i;
scanf(“%llu”、&ino);
对于(i=2;i而言,并不是因为代码错误,而是因为代码无效
让我们看看测试数字是否为素数的代码:
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=1;
}
}
用于(j=2;j请正确设置代码的格式。请正确设置代码的格式。要找出给定数字的所有素数,这是一个效率极低的代码。好吧。但问题是什么?选择一个数字。比方说1000000。你的外循环将循环500000次。你的内循环平均将循环125000次。因此,只要f或者像一百万这样的数字,你会循环320亿次。像6000亿这样的数字,你会循环多少次?你能把问题陈述复制到问题中吗?Thanx…我现在就看这些东西!!
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
flag=1;
}
}