工程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;
            }
        }