微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在序言中找到一个数的所有质因数的问题

如何解决在序言中找到一个数的所有质因数的问题

我编写了以下 prolog 代码来查找一个数的所有质因数。

<?PHP

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;

class Iscrizione extends Model
{
    use HasFactory;

    protected $hidden = ['idCorso','idUtente'];
    protected $table = 'iscrizione';

    protected function setKeysForSaveQuery(Builder $query){

        return $query->where('idCorso',$this->getAttribute('idCorso'))
            ->where('idUtente',$this->getAttribute('idUtente'));
    }
   
}

其中谓词 isPrime(N) 检查一个数是否为素数,并相应地返回真或假。 但是,根据我的逻辑,我总是将错误作为输出。问题出在哪儿??我对 prolog 编程很陌生,所以我有点挣扎。

如果需要进一步说明,请在下方发表评论

解决方法

我认为,你不应该从素数分解开始学习 Prolog,因为你的代码并不表明你对这个问题有一个清晰的认识。我很难解释你的代码背后的意图/想法。

我建议从选择一个你已经理解的问题开始学习序言。

然后也许开始考虑适合您的解决方案的谓词应该是什么样子。

在素数分解的情况下,可能是 prime_factors(N,List),如果 N 是一个数字并且 List 是它的所有质因数的列表,那么它应该是可证明的。 或者它可能是 prime_factor(N,F),如果 N 是一个数字并且 F 是它的主要因数之一,那么它应该是可证明的。

换句话说:你想问序言系统什么问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。